package net.sourceforge.sqlexplorer.connections.actions; import java.sql.SQLException; import java.util.Collection; import net.sourceforge.sqlexplorer.dbproduct.Session; import net.sourceforge.sqlexplorer.dbproduct.User; import net.sourceforge.sqlexplorer.plugin.SQLExplorerPlugin; public class AutoCommitAction extends AbstractConnectionTreeAction { public AutoCommitAction() { super("SQLEditor.Options.AutoCommit", "SQLEditor.Options.AutoCommit.Tooltip", "Images.CommitIcon", AS_CHECK_BOX); } public void run() { try { boolean enabled = isChecked(); for (User user : getView().getSelectedUsers(false)) { for (Session session : user.getSessions()) session.setAutoCommit(enabled); user.setAutoCommit(enabled); } }catch(SQLException e) { SQLExplorerPlugin.error(e); } } /** * Only show action when there is 1 alias selected * * @see net.sourceforge.sqlexplorer.connections.actions.AbstractConnectionTreeAction#isAvailable() */ public boolean isAvailable() { Collection<User> users = getView().getSelectedUsers(false); if (users.size() != 1) return false; for (User user : users) if (user.isAutoCommit()) { setChecked(true); break; } return true; } }