public void createToolWindowContent()

in src/main/java/org/apache/openwhisk/intellij/run/toolwindow/WhiskRunWindowFactory.java [65:153]


    public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow) {
        this.whiskRunWindowForm = new WhiskRunWindowForm(project, toolWindow);
        ContentFactory contentFactory = ContentFactory.SERVICE.getInstance();
        Content content = contentFactory.createContent(whiskRunWindowForm.getContent(), null, false);
        toolWindow.getContentManager().addContent(content);

        toolWindow.setIcon(Console);
        ToolWindowManager toolWindowManager = ToolWindowManager.getInstance(project);
        toolWindowManager.getToolWindow(ID).hide(() -> {
        });

        /**
         * Receive Action events
         */
        EventUtils.subscribe(project, project, OpenActionControlActionListener.TOPIC,
                (auth, executableWhiskAction) ->
                        toolWindowManager.getToolWindow(ID).show(() ->
                                initializeWhiskTabWithAction(auth, executableWhiskAction, false)));

        EventUtils.subscribe(project, project, OpenAndRunActionControlActionListener.TOPIC,
                (auth, executableWhiskAction) ->
                        toolWindowManager.getToolWindow(ID).show(() ->
                                initializeWhiskTabWithAction(auth, executableWhiskAction, true)));

        /**
         * Receive Trigger events
         */
        EventUtils.subscribe(project, project, OpenTriggerControlActionListener.TOPIC, (auth, executableWhiskTrigger) ->
                toolWindowManager.getToolWindow(ID).show(() ->
                        initializeWhiskTabWithTrigger(auth, executableWhiskTrigger, false)));

        EventUtils.subscribe(project, project, OpenAndFireTriggerControlActionListener.TOPIC, (auth, executableWhiskTrigger) ->
                toolWindowManager.getToolWindow(ID).show(() ->
                        initializeWhiskTabWithTrigger(auth, executableWhiskTrigger, true)));

        /**
         * Receive Action Toolbar events
         */
        EventUtils.subscribe(project, project, RunActionListener.TOPIC, () ->
                whiskRunWindowForm.getCachedAuth().ifPresent(auth -> {
                    String entity = whiskRunWindowForm.getCurrentEntity();
                    if (entity.equals(ENTITY_ACTION)) {
                        whiskRunWindowForm.getCachedAction().ifPresent(action ->
                                whiskRunWindowForm.runAction(whiskActionService, auth, action));
                    } else if (entity.equals(ENTITY_TRIGGER)) {
                        whiskRunWindowForm.getCachedTrigger().ifPresent(trigger ->
                                whiskRunWindowForm.fireTrigger(whiskTriggerService, whiskActivationService, auth, trigger));
                    }
                }));

        EventUtils.subscribe(project, project, RefreshActionOrTriggerListener.TOPIC, () ->
                whiskRunWindowForm.getCachedAuth().ifPresent(auth -> {
                    String entity = whiskRunWindowForm.getCurrentEntity();
                    if (entity.equals(ENTITY_ACTION)) {
                        whiskRunWindowForm.getCachedAction().ifPresent(action ->
                                whiskRunWindowForm.refreshActionMetaData(whiskActionService, auth, action));
                    } else if (entity.equals(ENTITY_TRIGGER)) {
                        whiskRunWindowForm.getCachedTrigger().ifPresent(trigger ->
                                whiskRunWindowForm.refreshTrigger(auth, whiskTriggerService, trigger));
                    }
                }));

        EventUtils.subscribe(project, project, OpenActionManagerListener.TOPIC, () ->
                whiskRunWindowForm.getCachedAuth().ifPresent(auth -> {
                    try {
                        List<WhiskActionMetaData> actions = whiskActionService.getWhiskActions(auth);
                        String entity = whiskRunWindowForm.getCurrentEntity();
                        if (entity.equals(ENTITY_ACTION)) {
                            whiskRunWindowForm.getCachedAction().ifPresent(action -> {
                                ActionManagerDialog dialog = new ActionManagerDialog(project, auth, action, actions);
                                if (dialog.showAndGet()) {
                                    LOG.info("ActionManagerDialog is closed");
                                }
                            });
                        } else if (entity.equals(ENTITY_TRIGGER)) {
                            whiskRunWindowForm.getCachedTrigger().ifPresent(trigger -> {
                                TriggerManagerDialog dialog = new TriggerManagerDialog(project, auth, trigger, actions);
                                if (dialog.showAndGet()) {
                                    LOG.info("TriggerManagerDialog is closed");
                                }
                            });
                        }
                    } catch (IOException e) {
                        final String msg = "The action cannot be executed.";
                        LOG.error(msg, e);
                        NOTIFIER.notify(project, msg, NotificationType.ERROR);
                    }
                }));
    }