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.duration;
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.undo.undoables.measure.UndoableMeasureGeneric;
14 import org.herac.tuxguitar.song.models.TGDuration;
15 
16 /**
17  * @author julian
18  *
19  * TODO To change the template for this generated type comment go to
20  * Window - Preferences - Java - Code Style - Code Templates
21  */
22 public class SetWholeDurationAction extends Action{
23 	public static final String NAME = "action.note.duration.set-whole";
24 	public static final int VALUE = TGDuration.WHOLE;
25 
SetWholeDurationAction()26 	public SetWholeDurationAction() {
27 		super(NAME, AUTO_LOCK | AUTO_UNLOCK | AUTO_UPDATE | DISABLE_ON_PLAYING | KEY_BINDING_AVAILABLE);
28 	}
29 
execute(TypedEvent e)30 	protected int execute(TypedEvent e){
31 		if(getSelectedDuration().getValue() != VALUE){
32 			//comienza el undoable
33 			UndoableMeasureGeneric undoable = UndoableMeasureGeneric.startUndo();
34 
35 			getSelectedDuration().setValue(VALUE);
36 			getSelectedDuration().setDotted(false);
37 			getSelectedDuration().setDoubleDotted(false);
38 			setDurations();
39 
40 			//termia el undoable
41 			addUndoableEdit(undoable.endUndo());
42 		}
43 		return 0;
44 	}
45 
setDurations()46 	private void setDurations() {
47 		Caret caret = getEditor().getTablature().getCaret();
48 		caret.changeDuration(getSelectedDuration().clone(getSongManager().getFactory()));
49 		TuxGuitar.instance().getFileHistory().setUnsavedFile();
50 		fireUpdate(getEditor().getTablature().getCaret().getMeasure().getNumber());
51 	}
52 
getSelectedDuration()53 	public TGDuration getSelectedDuration(){
54 		return getEditor().getTablature().getCaret().getDuration();
55 	}
56 }
57