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