1 /*
2  * Created on 17-dic-2005
3  *
4  * TODO To change the template for this generated file go to
5  * Window - Preferences - Java - Code Style - Code Templates
6  */
7 package org.herac.tuxguitar.gui.actions.effects;
8 
9 import org.eclipse.swt.events.TypedEvent;
10 import org.herac.tuxguitar.gui.TuxGuitar;
11 import org.herac.tuxguitar.gui.actions.Action;
12 import org.herac.tuxguitar.gui.editors.effects.GraceEditor;
13 import org.herac.tuxguitar.gui.editors.tab.Caret;
14 import org.herac.tuxguitar.gui.undo.undoables.measure.UndoableMeasureGeneric;
15 import org.herac.tuxguitar.song.models.TGNote;
16 import org.herac.tuxguitar.song.models.effects.TGEffectGrace;
17 
18 /**
19  * @author julian
20  *
21  * TODO To change the template for this generated type comment go to
22  * Window - Preferences - Java - Code Style - Code Templates
23  */
24 public class ChangeGraceNoteAction extends Action{
25 	public static final String NAME = "action.note.effect.change-grace";
26 
ChangeGraceNoteAction()27 	public ChangeGraceNoteAction() {
28 		super(NAME, AUTO_LOCK | AUTO_UNLOCK | AUTO_UPDATE | DISABLE_ON_PLAYING | KEY_BINDING_AVAILABLE);
29 	}
30 
execute(TypedEvent e)31 	protected int execute(TypedEvent e){
32 		TGNote note = getEditor().getTablature().getCaret().getSelectedNote();
33 		if(note != null){
34 			changeGrace(new GraceEditor().show(note));
35 		}
36 		return 0;
37 	}
38 
changeGrace(TGEffectGrace effect)39 	private void changeGrace(TGEffectGrace effect){
40 		//comienza el undoable
41 		UndoableMeasureGeneric undoable = UndoableMeasureGeneric.startUndo();
42 
43 		Caret caret = getEditor().getTablature().getCaret();
44 		getSongManager().getMeasureManager().changeGraceNote(caret.getMeasure(),caret.getPosition(),caret.getSelectedString().getNumber(),effect);
45 		TuxGuitar.instance().getFileHistory().setUnsavedFile();
46 		updateTablature();
47 
48 		//termia el undoable
49 		addUndoableEdit(undoable.endUndo());
50 	}
51 
updateTablature()52 	public void updateTablature() {
53 		fireUpdate(getEditor().getTablature().getCaret().getMeasure().getNumber());
54 	}
55 }
56