/*******************************************************************************
* Copyright (c) 2007-2009 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributor:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.hibernate.eclipse.console.actions;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.ui.texteditor.ITextEditor;
import org.hibernate.console.ImageConstants;
import org.hibernate.eclipse.console.AbstractQueryEditor;
import org.hibernate.eclipse.console.HibernateConsoleMessages;
import org.hibernate.eclipse.console.utils.EclipseImages;
/**
* Actor to pin/unpin query results tab to the editor.
*
* @author Vitali Yemialyanchyk
*/
public class StickResTabAction extends Action {
private ITextViewer fViewer;
private ITextEditor fTextEditor;
public StickResTabAction(ITextViewer viewer) {
super(HibernateConsoleMessages.StickResTabAction_stick_editor, AS_CHECK_BOX);
fViewer = viewer;
setToolTipText(HibernateConsoleMessages.StickResTabAction_stick_editor);
AbstractQueryEditor queryEditor = getQueryEditor();
boolean checked = false;
if (queryEditor != null) {
checked = queryEditor.getPinToOneResTab();
}
setChecked(checked);
setImageDescriptor(EclipseImages.getImageDescriptor(
checked ? ImageConstants.PINDOWN : ImageConstants.PINUP));
}
public StickResTabAction(ITextEditor textEditor) {
super(HibernateConsoleMessages.StickResTabAction_stick_editor, AS_CHECK_BOX);
fTextEditor = textEditor;
setToolTipText(HibernateConsoleMessages.StickResTabAction_stick_editor);
AbstractQueryEditor queryEditor = getQueryEditor();
boolean checked = false;
if (queryEditor != null) {
checked = queryEditor.getPinToOneResTab();
}
setChecked(checked);
setImageDescriptor(EclipseImages.getImageDescriptor(
checked ? ImageConstants.PINDOWN : ImageConstants.PINUP));
}
/* (non-Javadoc)
* @see org.eclipse.jface.action.IAction#run()
*/
public void run() {
setImageDescriptor(EclipseImages.getImageDescriptor(
isChecked() ? ImageConstants.PINDOWN : ImageConstants.PINUP));
AbstractQueryEditor queryEditor = getQueryEditor();
if (queryEditor != null) {
queryEditor.setPinToOneResTab(isChecked());
}
}
public AbstractQueryEditor getQueryEditor() {
if (fTextEditor instanceof AbstractQueryEditor) {
return (AbstractQueryEditor)fTextEditor;
}
if (fViewer instanceof AbstractQueryEditor) {
return (AbstractQueryEditor)fViewer;
}
return null;
}
}