public void show()

in renderer/src/main/java/org/netbeans/html/presenters/render/Cocoa.java [84:131]


    public void show(URI page) {
        this.page = page.toASCIIString();

        ensureHttpAccess(page);

        Native.loadLibrary("WebKit", WebKit.class);

        appDidStart = new AppDidStart();
        contextCreated = new ContextCreated();
        ready = new Ready();
        ui = new UIDelegate();
        dialogs = new DialogHandler[3];
        dialogs[0] = new DialogHandler(0);
        dialogs[1] = new DialogHandler(1);
        dialogs[2] = new DialogHandler(2);

        if (appDelPtr == null) {
            ObjC objC = ObjC.INSTANCE;
            Pointer appDelClass = objC.objc_allocateClassPair(objC.objc_getClass("NSObject"), "AppDelegate", 0);
            objC.class_addMethod(appDelClass, objC.sel_getUid("applicationDidFinishLaunching:"), appDidStart, "i@:@");
            doMainSelector = objC.sel_getUid("doMain");
            Native.setCallbackThreadInitializer(this, new CallbackThreadInitializer(false, false, "Cocoa Dispatch Thread"));
            objC.class_addMethod(appDelClass, doMainSelector, this, "i@");
            objC.class_addMethod(appDelClass, objC.sel_getUid("webView:didCreateJavaScriptContext:forFrame:"), contextCreated, "v@:@:@");
            objC.class_addMethod(appDelClass, objC.sel_getUid("webView:didFinishLoadForFrame:"), ready, "v@:@");
            objC.class_addMethod(appDelClass, objC.sel_getUid("webView:createWebViewWithRequest:"), ui, "v@:@");
            objC.class_addMethod(appDelClass, objC.sel_getUid("webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:"), dialogs[0], "v@:@:@");
            objC.class_addMethod(appDelClass, objC.sel_getUid("webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:"), dialogs[1], "v@:@:@");
            objC.class_addMethod(appDelClass, objC.sel_getUid("webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:"), dialogs[2], "v@:@:@");
            objC.objc_registerClassPair(appDelClass);

            long appDelObj = send(objC.objc_getClass("AppDelegate"), "alloc");
            appDelPtr = new Pointer(appDelObj);
            send(appDelPtr, "init");

            send(appDelPtr,
                "performSelectorOnMainThread:withObject:waitUntilDone:",
                doMainSelector, null, 1
            );
        } else {
            execute(new Runnable() {
                @Override
                public void run() {
                    appDidStart.callback(appDelPtr);
                }
            });
        }
    }