2
* Created on 17-dic-2005
4
* TODO To change the template for this generated file go to
5
* Window - Preferences - Java - Code Style - Code Templates
7
package org.herac.tuxguitar.gui.actions.track;
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.track.UndoableRemoveTrack;
19
* TODO To change the template for this generated type comment go to
20
* Window - Preferences - Java - Code Style - Code Templates
22
public class RemoveTrackAction extends Action{
23
public static final String NAME = "action.track.remove";
25
public RemoveTrackAction() {
26
super(NAME, AUTO_LOCK | AUTO_UNLOCK | AUTO_UPDATE | DISABLE_ON_PLAYING | KEY_BINDING_AVAILABLE);
29
protected int execute(TypedEvent e){
30
Caret caret = getEditor().getTablature().getCaret();
32
if(getSongManager().getSong().countTracks() <= 1){
33
//TuxGuitar.instance().getAction(NewFileAction.NAME).process(e);
34
TuxGuitar.instance().newSong();
37
//comienza el undoable
38
UndoableRemoveTrack undoable = UndoableRemoveTrack.startUndo();
39
TuxGuitar.instance().getFileHistory().setUnsavedFile();
41
TGTrackImpl track = caret.getTrack();
42
TGTrackImpl nextCaretTrack = (TGTrackImpl)getSongManager().getTrack(track.getNumber() + 1);
43
if(nextCaretTrack == null){
44
nextCaretTrack = (TGTrackImpl)getSongManager().getTrack(track.getNumber() - 1);
46
getSongManager().removeTrack(track);
49
//move the caret to the next or previous track
50
if(nextCaretTrack != null){
51
caret.update(nextCaretTrack.getNumber(),getSongManager().getTrackManager().getMeasureAt(nextCaretTrack, caret.getMeasure().getStart()).getStart(),1);
53
TuxGuitar.instance().getMixer().update();
56
addUndoableEdit(undoable.endUndo());