/*
* Created on 02-dic-2005
*
* TODO To change the template for this generated file go to Window -
* Preferences - Java - Code Style - Code Templates
*/
package org.herac.tuxguitar.gui.items.menu;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.herac.tuxguitar.gui.TuxGuitar;
import org.herac.tuxguitar.gui.actions.measure.AddMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.CleanMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.CopyMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.GoFirstMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.GoLastMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.GoNextMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.GoPreviousMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.PasteMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.RemoveMeasureAction;
import org.herac.tuxguitar.gui.editors.tab.TGMeasureImpl;
import org.herac.tuxguitar.gui.items.MenuItems;
/**
* @author julian
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class MeasureMenuItem extends MenuItems {
private MenuItem addMeasure;
private MenuItem cleanMeasure;
private MenuItem copyMeasure;
private MenuItem first;
private MenuItem last;
private MenuItem measureMenuItem;
private Menu menu;
private MenuItem next;
private MenuItem pasteMeasure;
private MenuItem previous;
private MenuItem removeMeasure;
public MeasureMenuItem(Shell shell, Menu parent, int style) {
this.measureMenuItem = new MenuItem(parent, style);
this.menu = new Menu(shell, SWT.DROP_DOWN);
}
public void loadIcons() {
// Nothing to do
}
public void loadProperties() {
setMenuItemTextAndAccelerator(this.measureMenuItem, "measure", null);
setMenuItemTextAndAccelerator(this.first, "measure.first",
GoFirstMeasureAction.NAME);
setMenuItemTextAndAccelerator(this.last, "measure.last",
GoLastMeasureAction.NAME);
setMenuItemTextAndAccelerator(this.previous, "measure.previous",
GoPreviousMeasureAction.NAME);
setMenuItemTextAndAccelerator(this.next, "measure.next",
GoNextMeasureAction.NAME);
setMenuItemTextAndAccelerator(this.addMeasure, "measure.add",
AddMeasureAction.NAME);
setMenuItemTextAndAccelerator(this.cleanMeasure, "measure.clean",
CleanMeasureAction.NAME);
setMenuItemTextAndAccelerator(this.removeMeasure, "measure.remove",
RemoveMeasureAction.NAME);
setMenuItemTextAndAccelerator(this.copyMeasure, "measure.copy",
CopyMeasureAction.NAME);
setMenuItemTextAndAccelerator(this.pasteMeasure, "measure.paste",
PasteMeasureAction.NAME);
}
public void showItems() {
// --first--
this.first = new MenuItem(this.menu, SWT.PUSH);
this.first.addSelectionListener(TuxGuitar.instance().getAction(
GoFirstMeasureAction.NAME));
// --previous--
this.previous = new MenuItem(this.menu, SWT.PUSH);
this.previous.addSelectionListener(TuxGuitar.instance().getAction(
GoPreviousMeasureAction.NAME));
// --next--
this.next = new MenuItem(this.menu, SWT.PUSH);
this.next.addSelectionListener(TuxGuitar.instance().getAction(
GoNextMeasureAction.NAME));
// --last--
this.last = new MenuItem(this.menu, SWT.PUSH);
this.last.addSelectionListener(TuxGuitar.instance().getAction(
GoLastMeasureAction.NAME));
// --SEPARATOR
new MenuItem(this.menu, SWT.SEPARATOR);
// --add--
this.addMeasure = new MenuItem(this.menu, SWT.PUSH);
this.addMeasure.addSelectionListener(TuxGuitar.instance().getAction(
AddMeasureAction.NAME));
// --clean--
this.cleanMeasure = new MenuItem(this.menu, SWT.PUSH);
this.cleanMeasure.addSelectionListener(TuxGuitar.instance().getAction(
CleanMeasureAction.NAME));
// --remove--
this.removeMeasure = new MenuItem(this.menu, SWT.PUSH);
this.removeMeasure.addSelectionListener(TuxGuitar.instance().getAction(
RemoveMeasureAction.NAME));
// --SEPARATOR
new MenuItem(this.menu, SWT.SEPARATOR);
// --copy--
this.copyMeasure = new MenuItem(this.menu, SWT.PUSH);
this.copyMeasure.addSelectionListener(TuxGuitar.instance().getAction(
CopyMeasureAction.NAME));
// --paste--
this.pasteMeasure = new MenuItem(this.menu, SWT.PUSH);
this.pasteMeasure.addSelectionListener(TuxGuitar.instance().getAction(
PasteMeasureAction.NAME));
this.measureMenuItem.setMenu(this.menu);
this.loadIcons();
this.loadProperties();
}
public void update() {
TGMeasureImpl measure = TuxGuitar.instance().getTablatureEditor()
.getTablature().getCaret().getMeasure();
boolean running = TuxGuitar.instance().getPlayer().isRunning();
boolean isFirst = (measure.getNumber() == 1);
boolean isLast = (measure.getNumber() == measure.getTrack().countMeasures());
this.first.setEnabled(!isFirst);
this.previous.setEnabled(!isFirst);
this.next.setEnabled(!isLast);
this.last.setEnabled(!isLast);
this.addMeasure.setEnabled(!running);
this.cleanMeasure.setEnabled(!running);
this.removeMeasure.setEnabled(!running);
this.copyMeasure.setEnabled(!running);
this.pasteMeasure.setEnabled(!running
&& !TuxGuitar.instance().getTablatureEditor().getClipBoard().isEmpty());
}
}