/*
* 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.composition.ChangeClefAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeInfoAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeKeySignatureAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeTempoAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeTimeSignatureAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeTripletFeelAction;
import org.herac.tuxguitar.gui.actions.insert.RepeatAlternativeAction;
import org.herac.tuxguitar.gui.actions.insert.RepeatCloseAction;
import org.herac.tuxguitar.gui.actions.insert.RepeatOpenAction;
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 CompositionMenuItem extends MenuItems {
private MenuItem clef;
private MenuItem compositionMenuItem;
private MenuItem keySignature;
private Menu menu;
private MenuItem properties;
private MenuItem repeatAlternative;
private MenuItem repeatClose;
private MenuItem repeatOpen;
private MenuItem tempo;
private MenuItem timeSignature;
private MenuItem tripletFeel;
public CompositionMenuItem(Shell shell, Menu parent, int style) {
this.compositionMenuItem = new MenuItem(parent, style);
this.menu = new Menu(shell, SWT.DROP_DOWN);
}
public void loadIcons() {
this.timeSignature.setImage(TuxGuitar.instance().getIconManager()
.getCompositionTimeSignature());
this.tempo.setImage(TuxGuitar.instance().getIconManager()
.getCompositionTempo());
this.repeatOpen.setImage(TuxGuitar.instance().getIconManager()
.getCompositionRepeatOpen());
this.repeatClose.setImage(TuxGuitar.instance().getIconManager()
.getCompositionRepeatClose());
this.repeatAlternative.setImage(TuxGuitar.instance().getIconManager()
.getCompositionRepeatAlternative());
this.properties.setImage(TuxGuitar.instance().getIconManager()
.getSongProperties());
}
public void loadProperties() {
setMenuItemTextAndAccelerator(this.compositionMenuItem, "composition", null);
setMenuItemTextAndAccelerator(this.timeSignature,
"composition.timesignature", ChangeTimeSignatureAction.NAME);
setMenuItemTextAndAccelerator(this.tempo, "composition.tempo",
ChangeTempoAction.NAME);
setMenuItemTextAndAccelerator(this.clef, "composition.clef",
ChangeClefAction.NAME);
setMenuItemTextAndAccelerator(this.keySignature,
"composition.keysignature", ChangeKeySignatureAction.NAME);
setMenuItemTextAndAccelerator(this.tripletFeel, "composition.tripletfeel",
ChangeTripletFeelAction.NAME);
setMenuItemTextAndAccelerator(this.repeatOpen, "repeat.open",
RepeatOpenAction.NAME);
setMenuItemTextAndAccelerator(this.repeatClose, "repeat.close",
RepeatCloseAction.NAME);
setMenuItemTextAndAccelerator(this.repeatAlternative, "repeat.alternative",
RepeatAlternativeAction.NAME);
setMenuItemTextAndAccelerator(this.properties, "composition.properties",
ChangeInfoAction.NAME);
}
public void showItems() {
// --TIME SIGNATURE--
this.timeSignature = new MenuItem(this.menu, SWT.PUSH);
this.timeSignature.addSelectionListener(TuxGuitar.instance().getAction(
ChangeTimeSignatureAction.NAME));
// --TEMPO--
this.tempo = new MenuItem(this.menu, SWT.PUSH);
this.tempo.addSelectionListener(TuxGuitar.instance().getAction(
ChangeTempoAction.NAME));
// --CLEF--
this.clef = new MenuItem(this.menu, SWT.PUSH);
this.clef.addSelectionListener(TuxGuitar.instance().getAction(
ChangeClefAction.NAME));
// --KEY SIGNATURE--
this.keySignature = new MenuItem(this.menu, SWT.PUSH);
this.keySignature.addSelectionListener(TuxGuitar.instance().getAction(
ChangeKeySignatureAction.NAME));
// --TRIPLET FEEL--
this.tripletFeel = new MenuItem(this.menu, SWT.PUSH);
this.tripletFeel.addSelectionListener(TuxGuitar.instance().getAction(
ChangeTripletFeelAction.NAME));
// --SEPARATOR--
new MenuItem(this.menu, SWT.SEPARATOR);
// --REPEAT OPEN--
this.repeatOpen = new MenuItem(this.menu, SWT.PUSH);
this.repeatOpen.addSelectionListener(TuxGuitar.instance().getAction(
RepeatOpenAction.NAME));
// --REPEAT CLOSE--
this.repeatClose = new MenuItem(this.menu, SWT.PUSH);
this.repeatClose.addSelectionListener(TuxGuitar.instance().getAction(
RepeatCloseAction.NAME));
// --REPEAT ALTERNATIVE--
this.repeatAlternative = new MenuItem(this.menu, SWT.PUSH);
this.repeatAlternative.addSelectionListener(TuxGuitar.instance().getAction(
RepeatAlternativeAction.NAME));
// --SEPARATOR--
new MenuItem(this.menu, SWT.SEPARATOR);
// --INFO--
this.properties = new MenuItem(this.menu, SWT.PUSH);
this.properties.addSelectionListener(TuxGuitar.instance().getAction(
ChangeInfoAction.NAME));
this.compositionMenuItem.setMenu(this.menu);
this.loadIcons();
this.loadProperties();
}
public void update() {
boolean running = TuxGuitar.instance().getPlayer().isRunning();
this.timeSignature.setEnabled(!running);
this.tempo.setEnabled(!running);
this.clef.setEnabled(!running);
this.keySignature.setEnabled(!running);
this.tripletFeel.setEnabled(!running);
this.repeatOpen.setEnabled(!running);
this.repeatClose.setEnabled(!running);
this.repeatAlternative.setEnabled(!running);
}
}