~ubuntu-branches/ubuntu/oneiric/tuxguitar/oneiric

« back to all changes in this revision

Viewing changes to src/org/herac/tuxguitar/gui/actions/effects/ChangeDeadNoteAction.java

  • Committer: Bazaar Package Importer
  • Author(s): Philippe Coval
  • Date: 2007-02-04 01:41:23 UTC
  • Revision ID: james.westby@ubuntu.com-20070204014123-9pv7okph0iaiqkvw
Tags: upstream-0.9.1
ImportĀ upstreamĀ versionĀ 0.9.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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.actions.Action;
 
11
import org.herac.tuxguitar.gui.editors.TablatureEditor;
 
12
import org.herac.tuxguitar.gui.editors.tab.Caret;
 
13
import org.herac.tuxguitar.gui.editors.tab.MeasureComponent;
 
14
import org.herac.tuxguitar.gui.editors.tab.NoteCoords;
 
15
import org.herac.tuxguitar.gui.undo.undoables.measure.UndoableMeasureGeneric;
 
16
import org.herac.tuxguitar.song.models.Duration;
 
17
import org.herac.tuxguitar.song.models.InstrumentString;
 
18
import org.herac.tuxguitar.song.models.Note;
 
19
import org.herac.tuxguitar.song.models.NoteEffect;
 
20
 
 
21
/**
 
22
 * @author julian
 
23
 *
 
24
 * TODO To change the template for this generated type comment go to
 
25
 * Window - Preferences - Java - Code Style - Code Templates
 
26
 */
 
27
public class ChangeDeadNoteAction extends Action{
 
28
    public static final String NAME = "action.note.effect.change-dead";
 
29
    
 
30
    public ChangeDeadNoteAction(TablatureEditor tablatureEditor) {
 
31
        super(NAME,true,tablatureEditor);       
 
32
    }
 
33
 
 
34
    public boolean doAction(TypedEvent e) {
 
35
        //comienza el undoable
 
36
        UndoableMeasureGeneric undoable = UndoableMeasureGeneric.startUndo();
 
37
        
 
38
        Note note = null;
 
39
        Caret caret = getEditor().getTablature().getCaret();
 
40
        MeasureComponent component = caret.getMeasureCoords().getComponent(caret.getPosition(),caret.getSelectedString().getNumber());
 
41
        if(component instanceof NoteCoords){
 
42
                note = ((NoteCoords)component).getNote();
 
43
        }
 
44
        if(note == null){
 
45
            Duration duration = (Duration)caret.getDuration().clone();
 
46
            InstrumentString string = new InstrumentString(caret.getSelectedString().getNumber(), caret.getSelectedString().getValue()); 
 
47
            note = new Note(0,caret.getPosition(),duration,caret.getVelocity(), string.getNumber(),false,new NoteEffect());
 
48
            getSongManager().getMeasureManager().addNote(caret.getMeasureCoords().getMeasure(),note);
 
49
        }
 
50
        getSongManager().getMeasureManager().changeDeadNote(note);
 
51
        
 
52
        updateTablature();          
 
53
        
 
54
        //termia el undoable
 
55
        getEditor().getUndoManager().addEdit(undoable.endUndo());             
 
56
        
 
57
        return true;
 
58
    }
 
59
    
 
60
 
 
61
    protected void updateTablature() {
 
62
        fireUpdate(getEditor().getTablature().getCaret().getMeasureCoords().getMeasure().getNumber());
 
63
        redraw();
 
64
    }        
 
65
 
 
66
}