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.measure; 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.tab.Caret; 13 import org.herac.tuxguitar.gui.editors.tab.TGTrackImpl; 14 import org.herac.tuxguitar.gui.undo.undoables.measure.UndoableAddMeasure; 15 import org.herac.tuxguitar.song.models.TGMeasure; 16 17 /** 18 * @author julian 19 * 20 * TODO To change the template for this generated type comment go to 21 * Window - Preferences - Java - Code Style - Code Templates 22 */ 23 public class GoNextMeasureAction extends Action{ 24 public static final String NAME = "action.measure.go-next"; 25 GoNextMeasureAction()26 public GoNextMeasureAction() { 27 super(NAME, AUTO_LOCK | AUTO_UNLOCK | AUTO_UPDATE | KEY_BINDING_AVAILABLE); 28 } 29 execute(TypedEvent e)30 protected int execute(TypedEvent e){ 31 Caret caret = getEditor().getTablature().getCaret(); 32 //si es el ultimo compas, agrego uno nuevo 33 if(getSongManager().getTrackManager().isLastMeasure(caret.getMeasure())){ 34 int number = (getSongManager().getSong().countMeasureHeaders() + 1); 35 36 //comienza el undoable 37 UndoableAddMeasure undoable = UndoableAddMeasure.startUndo(number); 38 39 this.getSongManager().addNewMeasure(number); 40 this.fireUpdate(number); 41 this.moveToNext(); 42 43 //termia el undoable 44 this.addUndoableEdit(undoable.endUndo()); 45 } 46 else{ 47 this.moveToNext(); 48 } 49 50 return 0; 51 } 52 moveToNext()53 private void moveToNext(){ 54 if(TuxGuitar.instance().getPlayer().isRunning()){ 55 TuxGuitar.instance().getTransport().gotoNext(); 56 } 57 else{ 58 Caret caret = getEditor().getTablature().getCaret(); 59 TGTrackImpl track = caret.getTrack(); 60 TGMeasure measure = getSongManager().getTrackManager().getNextMeasure(caret.getMeasure()); 61 if(track != null && measure != null){ 62 caret.update(track.getNumber(),measure.getStart(),caret.getSelectedString().getNumber()); 63 } 64 } 65 } 66 } 67