package com.dci.intellij.dbn.language.editor.action;
import com.dci.intellij.dbn.common.Icons;
import com.dci.intellij.dbn.common.util.ActionUtil;
import com.dci.intellij.dbn.connection.ConnectionHandler;
import com.dci.intellij.dbn.connection.transaction.DatabaseTransactionManager;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
public class TransactionCommitEditorAction extends TransactionEditorAction {
public TransactionCommitEditorAction() {
super("Commit", "Commit changes", Icons.CONNECTION_COMMIT);
}
public void actionPerformed(AnActionEvent e) {
Project project = ActionUtil.getProject(e);
VirtualFile virtualFile = e.getData(PlatformDataKeys.VIRTUAL_FILE);
if (project != null && virtualFile != null) {
DatabaseTransactionManager transactionManager = DatabaseTransactionManager.getInstance(project);
ConnectionHandler activeConnection = getConnectionHandler(project, virtualFile);
transactionManager.commit(activeConnection, true, false);
}
}
@Override
public void update(AnActionEvent e) {
super.update(e);
e.getPresentation().setText("Commit");
Project project = ActionUtil.getProject(e);
VirtualFile virtualFile = e.getData(PlatformDataKeys.VIRTUAL_FILE);
ConnectionHandler connectionHandler = virtualFile == null ? null : getConnectionHandler(project, virtualFile);
e.getPresentation().setVisible(connectionHandler != null && !connectionHandler.isAutoCommit());
}
}