package net.sourceforge.sqlexplorer.connections.actions; import java.util.Collection; import net.sourceforge.sqlexplorer.dbproduct.Session; import net.sourceforge.sqlexplorer.dbproduct.User; public class CommitOnCloseAction extends AbstractConnectionTreeAction { public CommitOnCloseAction() { super("SQLEditor.Options.CommitOnClose", "SQLEditor.Options.CommitOnClose.Tooltip", "Images.CommitIcon", AS_CHECK_BOX); } public void run() { boolean enabled = isChecked(); for (User user : getView().getSelectedUsers(false)) { for (Session session : user.getSessions()) session.setCommitOnClose(enabled); user.setCommitOnClose(enabled); } } /** * 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()) return false; else if (user.isCommitOnClose()) { setChecked(true); break; } return true; } }