package com.dci.intellij.dbn.execution.statement.result.action;
import com.dci.intellij.dbn.common.action.DBNDataKeys;
import com.dci.intellij.dbn.common.util.ActionUtil;
import com.dci.intellij.dbn.execution.ExecutionManager;
import com.dci.intellij.dbn.execution.ExecutionResult;
import com.dci.intellij.dbn.execution.statement.result.StatementExecutionCursorResult;
import com.dci.intellij.dbn.execution.statement.result.StatementExecutionResult;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import javax.swing.Icon;
public abstract class AbstractExecutionResultAction extends DumbAwareAction {
protected AbstractExecutionResultAction(String text, Icon icon) {
super(text, null, icon);
}
public StatementExecutionCursorResult getExecutionResult(AnActionEvent e) {
Project project = ActionUtil.getProject(e);
if (project != null) {
StatementExecutionResult result = e.getData(DBNDataKeys.STATEMENT_EXECUTION_RESULT);
if (result == null) {
ExecutionManager executionManager = ExecutionManager.getInstance(project);
ExecutionResult executionResult = executionManager.getSelectedExecutionResult();
if (executionResult instanceof StatementExecutionCursorResult) {
return (StatementExecutionCursorResult) executionResult;
}
} else if (result instanceof StatementExecutionCursorResult) {
return (StatementExecutionCursorResult) result;
}
}
return null;
}
@Override
public void update(AnActionEvent e) {
StatementExecutionCursorResult executionResult = getExecutionResult(e);
e.getPresentation().setEnabled(executionResult != null);
}
}