/*
* JBoss, Home of Professional Open Source
* Copyright 2005, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.hibernate.eclipse.hqleditor;
import java.util.ResourceBundle;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.editors.text.TextEditorActionContributor;
import org.eclipse.ui.part.EditorActionBarContributor;
import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.ui.texteditor.RetargetTextEditorAction;
import org.hibernate.eclipse.console.HibernateConsoleMessages;
import org.hibernate.eclipse.console.QueryEditor;
import org.hibernate.eclipse.console.actions.ExecuteQueryAction;
/**
* This class installs and manages actions for the HQL Editor.
*/
public class HQLEditorActionContributor extends TextEditorActionContributor {
protected RetargetTextEditorAction contentAssistProposalAction;
protected RetargetTextEditorAction contentAssistTipAction;
protected RetargetTextEditorAction contentFormatAction;
private ExecuteQueryAction executeHQLAction;
/**
* Constructs an instance of this class. This is the default constructor.
*/
public HQLEditorActionContributor() {
super();
ResourceBundle bundle = ResourceBundle.getBundle(HibernateConsoleMessages.BUNDLE_NAME);
contentAssistProposalAction = new RetargetTextEditorAction( bundle, "HQLEditor_ContentAssistProposal_" );//$NON-NLS-1$
contentAssistTipAction = new RetargetTextEditorAction( bundle, "HQLEditor_ContentAssistTip_" ); //$NON-NLS-1$
contentFormatAction = new RetargetTextEditorAction( bundle, "HQLEditor_ContentFormat_" ); //$NON-NLS-1$
executeHQLAction = new ExecuteQueryAction();
}
/**
* Contributes items to the Workbench Edit menu.
*
* @param mm the MenuManager to use
*/
public void contributeToMenu( IMenuManager mm ) {
IMenuManager editMenu = mm.findMenuUsingPath( IWorkbenchActionConstants.M_EDIT );
if (editMenu != null) {
editMenu.add( new Separator() );
editMenu.add( contentAssistProposalAction );
editMenu.add( contentFormatAction );
editMenu.add( contentAssistTipAction );
}
/*IMenuManager hqlMenu = mm.findMenuUsingPath( "HQL" );
if (hqlMenu != null) {
hqlMenu.add( new Separator() );
hqlMenu.add( fContentAssistTipAction );
}*/
}
/**
* Sets the active editor to this contributor.
* This updates the actions to reflect the current editor.
*
* @see org.eclipse.ui.part.EditorActionBarContributor#setActiveEditor(org.eclipse.ui.IEditorPart)
* @see EditorActionBarContributor#editorChanged
*/
public void setActiveEditor( IEditorPart targetEditor ) {
super.setActiveEditor( targetEditor );
ITextEditor textEditor = null;
if (targetEditor instanceof ITextEditor) {
textEditor = (ITextEditor) targetEditor;
}
// Set up the standard text editor actions. These actions each have an
// "retargetable action" associated with them. The action needs to be
// "retargeted" to associate it with the active editor whenever the active
// editor changes.
contentAssistProposalAction.setAction( getAction( textEditor, "ContentAssistProposal" )); //$NON-NLS-1$
contentAssistTipAction.setAction( getAction( textEditor, "ContentAssistTip" )); //$NON-NLS-1$
contentFormatAction.setAction( getAction( textEditor, "ContentFormat" )); //$NON-NLS-1$
if(targetEditor instanceof QueryEditor) {
executeHQLAction.setHibernateQueryEditor( (QueryEditor) targetEditor);
}
}
public void contributeToToolBar(IToolBarManager toolBarManager) {
super.contributeToToolBar( toolBarManager );
}
public void init(IActionBars bars, IWorkbenchPage page) {
super.init( bars, page );
// bars.setGlobalActionHandler("org.hibernate.eclipse.console.actions.ClearHQLEditorAction", fClearHQLEditorAction);
bars.setGlobalActionHandler("org.hibernate.eclipse.console.actions.ExecuteQueryAction", executeHQLAction); //$NON-NLS-1$
bars.updateActionBars();
}
}