package com.neueda.jetbrains.plugin.graphdb.jetbrains.actions.execute; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.editor.Editor; import com.intellij.util.messages.MessageBus; import com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.DataSourcesComponent; import com.neueda.jetbrains.plugin.graphdb.jetbrains.component.datasource.state.DataSourceApi; public class ChooseDataSourceAction extends AnAction { private final DataSourceApi dataSource; private final MessageBus messageBus; private final ExecuteQueryPayload executeQueryPayload; public ChooseDataSourceAction(DataSourceApi dataSource, DataSourcesComponent component, MessageBus messageBus, ExecuteQueryPayload executeQueryPayload) { super(dataSource.getName(), null, dataSource.getDescription().getIcon()); this.dataSource = dataSource; this.messageBus = messageBus; this.executeQueryPayload = executeQueryPayload; } @Override public void actionPerformed(AnActionEvent e) { ExecuteQueryEvent executeQueryEvent = messageBus.syncPublisher(ExecuteQueryEvent.EXECUTE_QUERY_TOPIC); Editor editor = e.getData(CommonDataKeys.EDITOR_EVEN_IF_INACTIVE); executeQueryEvent.executeQuery(dataSource, executeQueryPayload); } }