package org.herac.tuxguitar.gui.actions;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MenuEvent;
import org.eclipse.swt.events.MenuListener;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.events.ShellListener;
import org.eclipse.swt.events.TypedEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.ToolItem;
public abstract class ActionAdapter implements SelectionListener,
MouseListener, MenuListener, ShellListener {
public void menuHidden(MenuEvent e) {
// Override me
}
public void menuShown(MenuEvent e) {
process(e);
}
public void mouseDoubleClick(MouseEvent e) {
// Override me
}
public void mouseDown(MouseEvent e) {
// Override me
}
public void mouseUp(MouseEvent e) {
process(e);
}
public abstract void process(TypedEvent e);
public void shellActivated(ShellEvent e) {
// Override me
}
public void shellClosed(ShellEvent e) {
e.doit = false;
process(e);
}
public void shellDeactivated(ShellEvent e) {
// Override me
}
public void shellDeiconified(ShellEvent e) {
// Override me
}
public void shellIconified(ShellEvent e) {
// Override me
}
public void widgetDefaultSelected(SelectionEvent e) {
// Override me
}
public void widgetSelected(SelectionEvent e) {
if (e.widget != null && (e.widget.getStyle() & SWT.RADIO) != 0) {
if (e.widget instanceof Button && !((Button) e.widget).getSelection()) {
return;
}
if (e.widget instanceof ToolItem && !((ToolItem) e.widget).getSelection()) {
return;
}
if (e.widget instanceof MenuItem && !((MenuItem) e.widget).getSelection()) {
return;
}
}
process(e);
}
}