/** * Send new dimensions to the server. * * <p>For internal use only. May be removed or replaced in the future. */ public void sendClientResized() { Profiler.enter("VUI.sendClientResized"); Element parentElement = getElement().getParentElement(); int viewHeight = parentElement.getClientHeight(); int viewWidth = parentElement.getClientWidth(); ResizeEvent.fire(this, viewWidth, viewHeight); Profiler.leave("VUI.sendClientResized"); }
@Override public void onModuleLoad() { Profiler.initialize(); Profiler.enter("ApplicationConfiguration.onModuleLoad"); BrowserInfo browserInfo = BrowserInfo.get(); // Enable iOS6 cast fix (see #10460) if (browserInfo.isIOS() && browserInfo.isWebkit() && browserInfo.getBrowserMajorVersion() == 6) { enableIOS6castFix(); } // Prepare VConsole for debugging if (isDebugMode()) { Console console = GWT.create(Console.class); console.setQuietMode(isQuietDebugMode()); console.init(); VConsole.setImplementation(console); } else { VConsole.setImplementation((Console) GWT.create(NullConsole.class)); } /* * Display some sort of error of exceptions in web mode to debug * console. After this, exceptions are reported to VConsole and possible * GWT hosted mode. */ GWT.setUncaughtExceptionHandler( new UncaughtExceptionHandler() { @Override public void onUncaughtException(Throwable e) { /* * Note in case of null console (without ?debug) we eat * exceptions. "a1 is not an object" style errors helps nobody, * especially end user. It does not work tells just as much. */ VConsole.getImplementation().error(e); } }); Profiler.leave("ApplicationConfiguration.onModuleLoad"); if (SuperDevMode.enableBasedOnParameter()) { // Do not start any application as super dev mode will refresh the // page once done compiling return; } registerCallback(GWT.getModuleName()); }
/** * Create an uninitialized connector that best matches given UIDL. The connector must implement * {@link ServerConnector}. * * @param tag connector type tag for the connector to create * @param conf the application configuration to use when creating the connector * @return New uninitialized and unregistered connector that can paint given UIDL. */ public ServerConnector createConnector(int tag, ApplicationConfiguration conf) { /* * Yes, this (including the generated code in WidgetMap) may look very * odd code, but due the nature of GWT, we cannot do this any cleaner. * Luckily this is mostly written by WidgetSetGenerator, here are just * some hacks. Extra instantiation code is needed if client side * connector has no "native" counterpart on client side. */ Profiler.enter("WidgetSet.createConnector"); Class<? extends ServerConnector> classType = resolveInheritedConnectorType(conf, tag); try { if (classType == null || classType == UnknownComponentConnector.class || classType == UnknownExtensionConnector.class) { String serverSideName = conf.getUnknownServerClassNameByTag(tag); if (classType == UnknownExtensionConnector.class) { // Display message in the console for non-visual connectors getLogger().severe(UnknownComponentConnector.createMessage(serverSideName)); return GWT.create(UnknownExtensionConnector.class); } else { UnknownComponentConnector c = GWT.create(UnknownComponentConnector.class); // Set message to be shown in a widget for visual connectors c.setServerSideClassName(serverSideName); return c; } } else { /* * let the auto generated code instantiate this type */ ServerConnector connector = (ServerConnector) TypeData.getType(classType).createInstance(); if (connector instanceof HasJavaScriptConnectorHelper) { ((HasJavaScriptConnectorHelper) connector).getJavascriptConnectorHelper().setTag(tag); } return connector; } } catch (NoDataException e) { throw new IllegalStateException( "There is no information about " + classType + ". Did you remember to compile the right widgetset?", e); } finally { Profiler.leave("WidgetSet.createConnector"); } }
@Override public void onModuleLoad() { Profiler.initialize(); Profiler.enter("ApplicationConfiguration.onModuleLoad"); BrowserInfo browserInfo = BrowserInfo.get(); // Enable iOS6 cast fix (see #10460) if (browserInfo.isIOS6() && browserInfo.isWebkit()) { enableIOS6castFix(); } // Prepare the debugging window if (isDebugMode()) { /* * XXX Lots of implementation details here right now. This should be * cleared up when an API for extending the debug window is * implemented. */ VDebugWindow window = GWT.create(VDebugWindow.class); if (LogConfiguration.loggingIsEnabled()) { window.addSection((Section) GWT.create(LogSection.class)); } window.addSection((Section) GWT.create(InfoSection.class)); window.addSection((Section) GWT.create(HierarchySection.class)); window.addSection((Section) GWT.create(NetworkSection.class)); if (Profiler.isEnabled()) { window.addSection((Section) GWT.create(ProfilerSection.class)); } if (isQuietDebugMode()) { window.close(); } else { window.init(); } // Connect to the legacy API VConsole.setImplementation(window); Handler errorNotificationHandler = GWT.create(ErrorNotificationHandler.class); Logger.getLogger("").addHandler(errorNotificationHandler); } if (LogConfiguration.loggingIsEnabled()) { GWT.setUncaughtExceptionHandler( new UncaughtExceptionHandler() { @Override public void onUncaughtException(Throwable e) { /* * If the debug window is not enabled (?debug), this will * not show anything to normal users. "a1 is not an object" * style errors helps nobody, especially end user. It does * not work tells just as much. */ getLogger().log(Level.SEVERE, e.getMessage(), e); } }); if (isProductionMode()) { // Disable all logging if in production mode Logger.getLogger("").setLevel(Level.OFF); } } Profiler.leave("ApplicationConfiguration.onModuleLoad"); if (SuperDevMode.enableBasedOnParameter()) { // Do not start any application as super dev mode will refresh the // page once done compiling return; } registerCallback(GWT.getModuleName()); }
@Override public void onModuleLoad() { // Don't run twice if the module has been inherited several times. if (moduleLoaded) { return; } moduleLoaded = true; Profiler.initialize(); Profiler.enter("ApplicationConfiguration.onModuleLoad"); BrowserInfo browserInfo = BrowserInfo.get(); // Enable iOS6 cast fix (see #10460) if (browserInfo.isIOS6() && browserInfo.isWebkit()) { enableIOS6castFix(); } // Enable IE prompt fix (#13367) if (browserInfo.isIE() && browserInfo.getBrowserMajorVersion() >= 10) { enableIEPromptFix(); } // Register pointer events (must be done before any events are used) PointerEventSupport.init(); // Prepare the debugging window if (isDebugMode()) { /* * XXX Lots of implementation details here right now. This should be * cleared up when an API for extending the debug window is * implemented. */ VDebugWindow window = GWT.create(VDebugWindow.class); if (LogConfiguration.loggingIsEnabled()) { window.addSection((Section) GWT.create(LogSection.class)); } window.addSection((Section) GWT.create(InfoSection.class)); window.addSection((Section) GWT.create(HierarchySection.class)); window.addSection((Section) GWT.create(NetworkSection.class)); window.addSection((Section) GWT.create(TestBenchSection.class)); if (Profiler.isEnabled()) { window.addSection((Section) GWT.create(ProfilerSection.class)); } if (isQuietDebugMode()) { window.close(); } else { // Load debug window styles asynchronously GWT.runAsync( new RunAsyncCallback() { @Override public void onSuccess() { DebugWindowStyles dws = GWT.create(DebugWindowStyles.class); dws.css().ensureInjected(); } @Override public void onFailure(Throwable reason) { Window.alert("Failed to load Vaadin debug window styles"); } }); window.init(); } // Connect to the legacy API VConsole.setImplementation(window); Handler errorNotificationHandler = GWT.create(ErrorNotificationHandler.class); Logger.getLogger("").addHandler(errorNotificationHandler); } if (LogConfiguration.loggingIsEnabled()) { GWT.setUncaughtExceptionHandler( new UncaughtExceptionHandler() { @Override public void onUncaughtException(Throwable e) { /* * If the debug window is not enabled (?debug), this will * not show anything to normal users. "a1 is not an object" * style errors helps nobody, especially end user. It does * not work tells just as much. */ getLogger().log(Level.SEVERE, e.getMessage(), e); } }); if (isProductionMode()) { // Disable all logging if in production mode Logger.getLogger("").setLevel(Level.OFF); } } Profiler.leave("ApplicationConfiguration.onModuleLoad"); if (SuperDevMode.enableBasedOnParameter()) { // Do not start any application as super dev mode will refresh the // page once done compiling return; } registerCallback(GWT.getModuleName()); }
/** * Checks whether the profiling gathering is enabled. * * @return <code>true</code> if the profiling is enabled, else <code>false</code> */ public static boolean isEnabled() { // This will be fully inlined by the compiler Profiler create = GWT.create(Profiler.class); return create.isImplEnabled(); }