/*
* 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.edit.RedoAction;
import org.herac.tuxguitar.gui.actions.edit.SetMouseModeEditionAction;
import org.herac.tuxguitar.gui.actions.edit.SetMouseModeSelectionAction;
import org.herac.tuxguitar.gui.actions.edit.SetNaturalKeyAction;
import org.herac.tuxguitar.gui.actions.edit.SetVoice1Action;
import org.herac.tuxguitar.gui.actions.edit.SetVoice2Action;
import org.herac.tuxguitar.gui.actions.edit.UndoAction;
import org.herac.tuxguitar.gui.editors.tab.edit.EditorKit;
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 EditMenuItem extends MenuItems {
private MenuItem editMenuItem;
private Menu menu;
private MenuItem modeEdition;
private MenuItem modeSelection;
private MenuItem notNaturalKey;
private MenuItem redo;
private MenuItem undo;
private MenuItem voice1;
private MenuItem voice2;
public EditMenuItem(Shell shell, Menu parent, int style) {
this.editMenuItem = new MenuItem(parent, style);
this.menu = new Menu(shell, SWT.DROP_DOWN);
}
public void loadIcons() {
this.undo.setImage(TuxGuitar.instance().getIconManager().getEditUndo());
this.redo.setImage(TuxGuitar.instance().getIconManager().getEditRedo());
}
public void loadProperties() {
setMenuItemTextAndAccelerator(this.editMenuItem, "edit.menu", null);
setMenuItemTextAndAccelerator(this.undo, "edit.undo", UndoAction.NAME);
setMenuItemTextAndAccelerator(this.redo, "edit.redo", RedoAction.NAME);
setMenuItemTextAndAccelerator(this.modeSelection,
"edit.mouse-mode-selection", SetMouseModeSelectionAction.NAME);
setMenuItemTextAndAccelerator(this.modeEdition, "edit.mouse-mode-edition",
SetMouseModeEditionAction.NAME);
setMenuItemTextAndAccelerator(this.notNaturalKey, "edit.not-natural-key",
SetNaturalKeyAction.NAME);
setMenuItemTextAndAccelerator(this.voice1, "edit.voice-1",
SetVoice1Action.NAME);
setMenuItemTextAndAccelerator(this.voice2, "edit.voice-2",
SetVoice2Action.NAME);
}
public void showItems() {
// ---------------------------------------------------
// --UNDO--
this.undo = new MenuItem(this.menu, SWT.PUSH);
this.undo.addSelectionListener(TuxGuitar.instance().getAction(
UndoAction.NAME));
// --REDO--
this.redo = new MenuItem(this.menu, SWT.PUSH);
this.redo.addSelectionListener(TuxGuitar.instance().getAction(
RedoAction.NAME));
// --SEPARATOR
new MenuItem(this.menu, SWT.SEPARATOR);
// --TABLATURE EDIT MODE
this.modeSelection = new MenuItem(this.menu, SWT.RADIO);
this.modeSelection.addSelectionListener(TuxGuitar.instance().getAction(
SetMouseModeSelectionAction.NAME));
// --SCORE EDIT MODE
this.modeEdition = new MenuItem(this.menu, SWT.RADIO);
this.modeEdition.addSelectionListener(TuxGuitar.instance().getAction(
SetMouseModeEditionAction.NAME));
// --NATURAL NOTES
this.notNaturalKey = new MenuItem(this.menu, SWT.CHECK);
this.notNaturalKey.addSelectionListener(TuxGuitar.instance().getAction(
SetNaturalKeyAction.NAME));
// --SEPARATOR
new MenuItem(this.menu, SWT.SEPARATOR);
// --VOICE 1
this.voice1 = new MenuItem(this.menu, SWT.RADIO);
this.voice1.addSelectionListener(TuxGuitar.instance().getAction(
SetVoice1Action.NAME));
// --VOICE 2
this.voice2 = new MenuItem(this.menu, SWT.RADIO);
this.voice2.addSelectionListener(TuxGuitar.instance().getAction(
SetVoice2Action.NAME));
this.editMenuItem.setMenu(this.menu);
this.loadIcons();
this.loadProperties();
}
public void update() {
EditorKit kit = TuxGuitar.instance().getTablatureEditor().getTablature()
.getEditorKit();
boolean running = TuxGuitar.instance().getPlayer().isRunning();
this.undo.setEnabled(!running
&& TuxGuitar.instance().getUndoableManager().canUndo());
this.redo.setEnabled(!running
&& TuxGuitar.instance().getUndoableManager().canRedo());
this.modeSelection
.setSelection(kit.getMouseMode() == EditorKit.MOUSE_MODE_SELECTION);
this.modeSelection.setEnabled(!running);
this.modeEdition
.setSelection(kit.getMouseMode() == EditorKit.MOUSE_MODE_EDITION);
this.modeEdition.setEnabled(!running);
this.notNaturalKey.setSelection(!kit.isNatural());
this.notNaturalKey.setEnabled(!running
&& kit.getMouseMode() == EditorKit.MOUSE_MODE_EDITION);
this.voice1.setSelection(kit.getTablature().getCaret().getVoice() == 0);
this.voice2.setSelection(kit.getTablature().getCaret().getVoice() == 1);
}
}