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

« back to all changes in this revision

Viewing changes to TuxGuitar/src/org/herac/tuxguitar/gui/editors/lyric/LyricModifyListener.java

  • Committer: Bazaar Package Importer
  • Author(s): Philippe Coval
  • Date: 2008-06-19 00:30:30 UTC
  • mto: (5.1.2 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20080619003030-h719szrhsngou7c6
Tags: upstream-1.0
ImportĀ upstreamĀ versionĀ 1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.herac.tuxguitar.gui.editors.lyric;
 
2
 
 
3
import org.eclipse.swt.events.ModifyEvent;
 
4
import org.eclipse.swt.events.ModifyListener;
 
5
import org.eclipse.swt.widgets.Spinner;
 
6
import org.eclipse.swt.widgets.Text;
 
7
import org.herac.tuxguitar.gui.TuxGuitar;
 
8
import org.herac.tuxguitar.gui.undo.undoables.track.UndoableTrackLyric;
 
9
import org.herac.tuxguitar.song.models.TGTrack;
 
10
 
 
11
public class LyricModifyListener implements ModifyListener{
 
12
        
 
13
        private boolean enabled;
 
14
        private LyricEditor editor;
 
15
        private int lastPosition;
 
16
        
 
17
        public LyricModifyListener(LyricEditor editor){
 
18
                this.editor = editor;
 
19
        }
 
20
        
 
21
        public void modifyText(ModifyEvent e) {
 
22
                if(isEnabled() && !TuxGuitar.instance().getPlayer().isRunning()){
 
23
                        
 
24
                        if(e.widget instanceof Text){
 
25
                                TGTrack track = this.editor.getTrack();
 
26
                                Text text = (Text)e.widget;
 
27
                                String value = text.getText();
 
28
                                int position = text.getCaretPosition();
 
29
                                
 
30
                                UndoableTrackLyric undoable = UndoableTrackLyric.startUndo(track,this.lastPosition);
 
31
                                track.getLyrics().setLyrics(value);
 
32
                                TuxGuitar.instance().getUndoableManager().addEdit( undoable.endUndo(track,position) );
 
33
                                TuxGuitar.instance().getFileHistory().setUnsavedFile();
 
34
                                
 
35
                                this.lastPosition = position;
 
36
                        }else if(e.widget instanceof Spinner){
 
37
                                TGTrack track = this.editor.getTrack();
 
38
                                UndoableTrackLyric undoable = UndoableTrackLyric.startUndo(track,this.lastPosition);
 
39
                                track.getLyrics().setFrom(((Spinner)e.widget).getSelection());
 
40
                                TuxGuitar.instance().getUndoableManager().addEdit( undoable.endUndo(track,this.lastPosition) );
 
41
                                TuxGuitar.instance().getFileHistory().setUnsavedFile();
 
42
                        }
 
43
                        
 
44
                        TuxGuitar.instance().updateCache(true);
 
45
                }
 
46
        }
 
47
        
 
48
        public boolean isEnabled() {
 
49
                return this.enabled;
 
50
        }
 
51
        
 
52
        public void setEnabled(boolean enabled) {
 
53
                this.enabled = enabled;
 
54
        }
 
55
}