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.note;
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.undo.undoables.measure.UndoableMeasureGeneric;
13 import org.herac.tuxguitar.song.models.TGNote;
14 
15 /**
16  * @author julian
17  *
18  * TODO To change the template for this generated type comment go to
19  * Window - Preferences - Java - Code Style - Code Templates
20  */
21 public class ShiftNoteUpAction extends Action{
22 	public static final String NAME = "action.note.general.shift-up";
23 
ShiftNoteUpAction()24 	public ShiftNoteUpAction() {
25 		super(NAME, AUTO_LOCK | AUTO_UNLOCK | AUTO_UPDATE | DISABLE_ON_PLAYING | KEY_BINDING_AVAILABLE);
26 	}
27 
execute(TypedEvent e)28 	protected int execute(TypedEvent e){
29 		TGNote note = getEditor().getTablature().getCaret().getSelectedNote();
30 		if(note != null){
31 			//comienza el undoable
32 			UndoableMeasureGeneric undoable = UndoableMeasureGeneric.startUndo();
33 
34 			int nextString = getSongManager().getMeasureManager().shiftNoteUp(getEditor().getTablature().getCaret().getMeasure(),note.getVoice().getBeat().getStart(),note.getString());
35 			if(nextString > 0){
36 				getEditor().getTablature().getCaret().setStringNumber(nextString);
37 
38 				//termia el undoable
39 				addUndoableEdit(undoable.endUndo());
40 				TuxGuitar.instance().getFileHistory().setUnsavedFile();
41 			}
42 			updateTablature();
43 		}
44 		return 0;
45 	}
46 
updateTablature()47 	public void updateTablature() {
48 		fireUpdate(getEditor().getTablature().getCaret().getMeasure().getNumber());
49 	}
50 }
51