package net.sourceforge.sqlexplorer.sqleditor.actions; import java.sql.SQLException; import net.sourceforge.sqlexplorer.Messages; import net.sourceforge.sqlexplorer.plugin.SQLExplorerPlugin; import net.sourceforge.sqlexplorer.plugin.editors.SQLEditor; import net.sourceforge.sqlexplorer.util.ImageUtil; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuCreator; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Menu; public class OptionsDropDownAction extends AbstractEditorAction implements IMenuCreator { // The drop down menu private Menu menu; public OptionsDropDownAction(SQLEditor editor, Composite parent) { super(editor); setText("Options"); setMenuCreator(this); } public void dispose() { if (menu != null) { menu.dispose(); menu = null; } } public Menu getMenu(Menu parent) { return null; } public Menu getMenu(Control parent) { if (menu != null) menu.dispose(); menu = new Menu(parent); Action action = new Action(Messages.getString("SQLEditor.Options.AutoCommit"), IAction.AS_CHECK_BOX) { public void run(){ try { _editor.getSession().setAutoCommit(isChecked()); _editor.getEditorToolBar().refresh(); }catch(SQLException e) { SQLExplorerPlugin.error(e); } } }; action.setChecked(_editor.getSession().isAutoCommit()); addActionToMenu(menu, action); action = new Action(Messages.getString("SQLEditor.Options.CommitOnClose"), IAction.AS_CHECK_BOX) { public void run(){ _editor.getSession().setCommitOnClose(isChecked()); _editor.getEditorToolBar().refresh(); } @Override public boolean isEnabled() { return super.isEnabled() && !_editor.getSession().isAutoCommit(); } }; action.setChecked(_editor.getSession().isCommitOnClose()); addActionToMenu(menu, action); return menu; } protected void addActionToMenu(Menu parent, Action action) { ActionContributionItem item= new ActionContributionItem(action); item.fill(parent, -1); } @Override public ImageDescriptor getImageDescriptor() { return ImageUtil.getDescriptor("Images.OptionsDropDown"); } @Override public String getText() { return Messages.getString("SQLEditor.Actions.OptionsDropDown"); } @Override public String getToolTipText() { return Messages.getString("SQLEditor.Actions.OptionsDropDown.Tooltip"); } @Override public void run() { // menu.setLocation(100, 100); // menu.setVisible(true); } }