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

« back to all changes in this revision

Viewing changes to src/org/herac/tuxguitar/gui/editors/tab/edit/EditorKit.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.tab.edit;
2
 
 
3
 
import org.eclipse.swt.events.MouseEvent;
4
 
import org.eclipse.swt.events.MouseListener;
5
 
import org.eclipse.swt.events.MouseMoveListener;
6
 
import org.eclipse.swt.events.MouseTrackListener;
7
 
import org.herac.tuxguitar.gui.TuxGuitar;
8
 
import org.herac.tuxguitar.gui.editors.tab.MeasureComponent;
9
 
import org.herac.tuxguitar.gui.editors.tab.MeasureCoords;
10
 
import org.herac.tuxguitar.gui.editors.tab.SongTrackCoords;
11
 
import org.herac.tuxguitar.gui.editors.tab.Tablature;
12
 
import org.herac.tuxguitar.gui.system.config.ConfigKeys;
13
 
import org.herac.tuxguitar.song.models.InstrumentString;
14
 
 
15
 
public class EditorKit implements MouseListener,MouseMoveListener,MouseTrackListener{
16
 
        public static final int MOUSE_MODE_SELECTION = 1;
17
 
        
18
 
        public static final int MOUSE_MODE_EDITION = 2;
19
 
 
20
 
        private int mouseMode;
21
 
        private boolean natural;
22
 
        private Tablature tablature;
23
 
        private MouseKit mouseKit;
24
 
        
25
 
        public EditorKit(Tablature tablature){
26
 
                this.tablature = tablature;             
27
 
        this.mouseKit = new MouseKit(this);
28
 
        this.tablature.addMouseMoveListener(this);
29
 
        this.tablature.addMouseListener(this);
30
 
        this.tablature.addMouseTrackListener(this);
31
 
        this.setDefaults();
32
 
        }
33
 
 
34
 
        private void setDefaults(){             
35
 
                this.setMouseMode(TuxGuitar.instance().getConfig().getIntConfigValue(ConfigKeys.EDITOR_MOUSE_MODE,MOUSE_MODE_EDITION));
36
 
                this.setNatural(TuxGuitar.instance().getConfig().getBooleanConfigValue(ConfigKeys.EDITOR_NATURAL_KEY_MODE,true));
37
 
        }
38
 
        
39
 
        public int getMouseMode() {
40
 
                return mouseMode;
41
 
        }
42
 
 
43
 
 
44
 
        public void setMouseMode(int mouseMode) {
45
 
                this.mouseMode = mouseMode;
46
 
        }
47
 
        
48
 
        public boolean isNatural() {
49
 
                return natural;
50
 
        }
51
 
 
52
 
        public void setNatural(boolean natural) {
53
 
                this.natural = natural;
54
 
        }
55
 
 
56
 
 
57
 
        public Tablature getTablature() {
58
 
                return tablature;
59
 
        }       
60
 
        
61
 
 
62
 
        public void tryBack(){
63
 
                this.mouseKit.tryBack();
64
 
        }
65
 
        
66
 
        
67
 
    public boolean select(int x, int y) {
68
 
        if(x >= 0 && y >= 0){
69
 
                SongTrackCoords trackCoords = getTrackCoords(y);
70
 
                if (trackCoords != null) {
71
 
                        MeasureCoords measureCoords = getMeasureCoords(trackCoords, x,y);
72
 
                        if (measureCoords != null) {
73
 
                                MeasureComponent measureComponent = getMeasureComponent(measureCoords, x);
74
 
                                InstrumentString instrumentString = getMeasureString(measureCoords, y);
75
 
                                if (measureComponent != null) {
76
 
                                        int string = (instrumentString != null)?instrumentString.getNumber():getTablature().getCaret().getSelectedString().getNumber();                                         
77
 
                                        getTablature().getCaret().moveTo(trackCoords, measureCoords, measureComponent, string);
78
 
                                }                               
79
 
                                return true;    
80
 
                        }
81
 
                }               
82
 
        }
83
 
        return false;
84
 
    }
85
 
 
86
 
    public SongTrackCoords getTrackCoords(int y) {
87
 
        return getTablature().getSongCoords().getTrackAt(y/*, -getTablature().getVerticalBar().getSelection()*/);
88
 
    }
89
 
 
90
 
    public MeasureCoords getMeasureCoords(SongTrackCoords trackCoords, int x,int y) {
91
 
        return trackCoords.getMeasureAt(x,y/*, -getTablature().getHorizontalBar().getSelection(),-getTablature().getVerticalBar().getSelection()*/);
92
 
    }    
93
 
 
94
 
    public MeasureComponent getMeasureComponent(MeasureCoords measureCoords, int x) {
95
 
        return measureCoords.getComponentAt(x);
96
 
    }
97
 
 
98
 
    public InstrumentString getMeasureString(MeasureCoords measureCoords, int y) {
99
 
        return measureCoords.getStringAt(y);
100
 
    }
101
 
 
102
 
    
103
 
    
104
 
        public void mouseDown(MouseEvent e) {
105
 
                select(e.x, e.y);
106
 
                //if(select(e.x, e.y)){
107
 
                        //TuxGuitar.instance().redraw();
108
 
                        //TuxGuitar.instance().updateCache(true);
109
 
                //}
110
 
        }
111
 
 
112
 
        public void mouseUp(MouseEvent e) {
113
 
                if(select(e.x, e.y)){
114
 
                        TuxGuitar.instance().redraw();
115
 
                        TuxGuitar.instance().updateCache(true);                                         
116
 
                        if(!TuxGuitar.instance().getPlayer().isRunning() && getTablature().getViewLayout().isScoreEnabled() && getMouseMode() == MOUSE_MODE_EDITION){
117
 
                                //if(getTablature().getViewLayout().isScoreEnabled() && getMouseMode() == MOUSE_MODE_EDITION && select(e.x, e.y)){
118
 
                                        this.mouseKit.mouseUp(e);
119
 
                                //}                                             
120
 
                        }
121
 
                }
122
 
        }
123
 
 
124
 
        public void mouseMove(MouseEvent e) {
125
 
                if(!TuxGuitar.instance().getPlayer().isRunning()){
126
 
                        if(getTablature().getViewLayout().isScoreEnabled() && getMouseMode() == MOUSE_MODE_EDITION){
127
 
                                this.mouseKit.mouseMove(e);
128
 
                        }
129
 
                }
130
 
        }
131
 
 
132
 
        public void mouseExit(MouseEvent e) {
133
 
                if(!TuxGuitar.instance().getPlayer().isRunning()){
134
 
                        if(getTablature().getViewLayout().isScoreEnabled() && getMouseMode() == MOUSE_MODE_EDITION){
135
 
                                this.mouseKit.mouseExit(e);
136
 
                        }
137
 
                }
138
 
        }
139
 
        
140
 
        public void mouseDoubleClick(MouseEvent e) {            
141
 
        }
142
 
        public void mouseEnter(MouseEvent e) {          
143
 
        }
144
 
        public void mouseHover(MouseEvent e) {  
145
 
        }       
146
 
}