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);
});
}