private void setWskDeployTree()

in src/main/java/org/apache/openwhisk/intellij/wskdeploy/toolwindow/ui/WskDeployWindowForm.java [104:150]


    private void setWskDeployTree(Project project, List<WskDeployManifest> manifests) {
        boolean isWindows = System.getProperty("os.name").toLowerCase().startsWith("windows"); // TODO make a global value
        WskDeployFile wskDeployFile = loadRegisteredWskDeploy()  // 1. Registered wskdeploy
                .orElse(loadWskDeployFileFromLocal(isWindows));  // 2. Local wskdeploy

        wskdeployJTree.setModel(new WskDeployTreeModel(wskDeployFile, manifests));
        wskdeployJTree.setCellRenderer(new WskDeployTreeCellRenderer());
        expandAllNode(wskdeployJTree);
        wskdeployJTree.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() > 1) {
                    DefaultMutableTreeNode node = (DefaultMutableTreeNode) wskdeployJTree.getLastSelectedPathComponent();
                    Object userObject = node.getUserObject();
                    if (userObject instanceof WskDeployCmdDeploy) {
                        WskDeployCmdDeploy cmd = (WskDeployCmdDeploy) userObject;
                        if (new WskDeployCmdDialog(project, cmd).showAndGet()) {
                            LOG.info("WskDeployCmdDialog(deploy) closed");
                        }
                    } else if (userObject instanceof WskDeployCmdUndeploy) {
                        WskDeployCmdUndeploy cmd = (WskDeployCmdUndeploy) userObject;
                        if (new WskDeployCmdDialog(project, cmd).showAndGet()) {
                            LOG.info("WskDeployCmdDialog(undeploy) closed");
                        }
                    }
                }
            }
        });

        EventUtils.subscribe(project, project, RefreshWskDeployManifestListener.TOPIC, () -> {
            WskDeployFile reloadedWskDeployFile = loadRegisteredWskDeploy()  // 1. Registered wskdeploy
                    .orElse(loadWskDeployFileFromLocal(isWindows));          // 2. Local wskdeploy

            wskdeployJTree.setModel(new WskDeployTreeModel(reloadedWskDeployFile, loadWskDeployManifest(project)));
            expandAllNode(wskdeployJTree);
        });

        EventUtils.subscribe(project, project, ChooseWskDeployBinaryListener.TOPIC, (chosenWskDeployFile) -> {
            WskDeployBinary wskDeployBinary = new WskDeployBinary(chosenWskDeployFile.getPath(), chosenWskDeployFile.getName());
            wskDeployService.setWskdeployName(wskDeployBinary.getName());
            wskDeployService.setWskdeployPath(wskDeployBinary.getFullPath());
            wskDeployService.loadState(wskDeployService);

            wskdeployJTree.setModel(new WskDeployTreeModel(wskDeployBinary, loadWskDeployManifest(project)));
            expandAllNode(wskdeployJTree);
        });
    }