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

« back to all changes in this revision

Viewing changes to src/org/herac/tuxguitar/gui/editors/tab/SongCoords.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
 
/*
2
 
 * Created on 29-nov-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.editors.tab;
8
 
 
9
 
import java.util.ArrayList;
10
 
import java.util.List;
11
 
 
12
 
import org.herac.tuxguitar.song.managers.SongManager;
13
 
import org.herac.tuxguitar.song.models.SongTrack;
14
 
 
15
 
/**
16
 
 * @author julian
17
 
 * 
18
 
 * TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates
19
 
 */
20
 
public class SongCoords {
21
 
    private Tablature tablature;
22
 
    private SongManager songManager;
23
 
    private List tracksCoords;
24
 
    private List measureHeaders;
25
 
    
26
 
    public SongCoords(Tablature tablature,SongManager songManager) {
27
 
        this.tablature = tablature;
28
 
        this.songManager = songManager;
29
 
        this.init();
30
 
    }   
31
 
 
32
 
    public void init(){
33
 
        this.tracksCoords = new ArrayList();
34
 
        this.measureHeaders = new ArrayList();
35
 
    }    
36
 
 
37
 
    public void create(int tracks,int measures){
38
 
        this.tracksCoords = new ArrayList(tracks);
39
 
        this.measureHeaders = new ArrayList(measures);
40
 
    }        
41
 
    
42
 
    public SongTrackCoords getTrackAt(int y){
43
 
        int number = this.tablature.getViewLayout().getTrackNumberAt(this.tracksCoords,y);
44
 
        if(number >= 0){
45
 
                return getTrack(number);
46
 
        }
47
 
        return null;
48
 
    }
49
 
    
50
 
    public SongTrackCoords getTrack(int number){
51
 
        SongTrackCoords trackCoords = null;        
52
 
        for (int i = 0; i < this.tracksCoords.size(); i++) {
53
 
            SongTrackCoords currTrack = (SongTrackCoords) this.tracksCoords.get(i);            
54
 
            if(currTrack.getTrack().getNumber() == number){
55
 
                trackCoords = currTrack;
56
 
                break;
57
 
            }
58
 
        }     
59
 
        return trackCoords;        
60
 
    }
61
 
    
62
 
    public SongTrackCoords getNextTrack(SongTrackCoords trackCoords){
63
 
        SongTrackCoords track = null;
64
 
        for (int trackIdx = 0; trackIdx < this.tracksCoords.size(); trackIdx++) {
65
 
            SongTrackCoords currTrack = (SongTrackCoords) this.tracksCoords.get(trackIdx);            
66
 
            if(currTrack.equals(trackCoords)){
67
 
                int nextIndex = trackIdx + 1;
68
 
                if(nextIndex < this.tracksCoords.size()){
69
 
                    track = (SongTrackCoords)this.tracksCoords.get(nextIndex);                    
70
 
                }
71
 
                break;
72
 
            }
73
 
        }     
74
 
        return track;
75
 
    }
76
 
    
77
 
    public SongTrackCoords getPrevTrack(SongTrackCoords trackCoords){
78
 
        SongTrackCoords track = null;
79
 
        for (int trackIdx = 0; trackIdx < this.tracksCoords.size(); trackIdx++) {
80
 
            SongTrackCoords currTrack = (SongTrackCoords) this.tracksCoords.get(trackIdx);            
81
 
            if(currTrack.equals(trackCoords)){
82
 
                int prevIndex = trackIdx - 1;
83
 
                if(prevIndex >= 0){
84
 
                    track = (SongTrackCoords)this.tracksCoords.get(prevIndex);                    
85
 
                }
86
 
                break;
87
 
            }
88
 
        }     
89
 
        return track;
90
 
    }    
91
 
    
92
 
    public SongTrackCoords getTrack(SongTrack songTrack){
93
 
        SongTrackCoords trackCoords = null;
94
 
        for (int trackIdx = 0; trackIdx < this.tracksCoords.size(); trackIdx++) {
95
 
            SongTrackCoords currTrack = (SongTrackCoords) this.tracksCoords.get(trackIdx);            
96
 
            if(currTrack.getTrack().equals(songTrack)){
97
 
                trackCoords = currTrack;
98
 
                break;
99
 
            }
100
 
        }     
101
 
        return trackCoords;
102
 
    }        
103
 
 
104
 
    public SongTrackCoords getFirstTrack(){
105
 
        SongTrackCoords track = null;
106
 
        if(!this.tracksCoords.isEmpty()){
107
 
            track = (SongTrackCoords)this.tracksCoords.get(0);
108
 
        }
109
 
        return track;
110
 
    }       
111
 
 
112
 
    public SongTrackCoords getLastTrack(){
113
 
        SongTrackCoords track = null;
114
 
        if(!this.tracksCoords.isEmpty()){
115
 
            track = (SongTrackCoords)this.tracksCoords.get(this.tracksCoords.size() - 1);
116
 
        }
117
 
        return track;
118
 
    }               
119
 
 
120
 
    public SongManager getSongManager() {
121
 
        return songManager;
122
 
    }
123
 
    public void setSongManager(SongManager songManager) {
124
 
        this.songManager = songManager;
125
 
    }
126
 
    public List getTrackCoords(){
127
 
        return this.tracksCoords;
128
 
    }
129
 
 
130
 
        public SongTrackCoords getTrackByIndex(int index) {
131
 
                if(tracksCoords.size() > index){                                
132
 
                return (SongTrackCoords)tracksCoords.get(index);
133
 
        }               
134
 
                SongTrackCoords track = new SongTrackCoords(tablature,songManager,songManager.getTrack(index + 1),tablature.getViewLayout());
135
 
                tracksCoords.add(track);
136
 
                return track;
137
 
        }    
138
 
    
139
 
        public MeasureHeaderGui getHeaderByIndex(int index) {
140
 
                if(measureHeaders.size() > index){                                
141
 
                return (MeasureHeaderGui)measureHeaders.get(index);
142
 
        }
143
 
                MeasureHeaderGui header = new MeasureHeaderGui(songManager.getMeasureHeader(index + 1));
144
 
                measureHeaders.add(header);
145
 
                return header;
146
 
        }
147
 
    
148
 
        
149
 
        public void disposeTracks(){
150
 
        //dispose old measures
151
 
        for (int i = 0; i < tracksCoords.size(); i++) {
152
 
            SongTrackCoords trackCoords = (SongTrackCoords)tracksCoords.get(i);
153
 
            for (int j = 0; j < trackCoords.getMeasuresCoords().size(); j++) {
154
 
                MeasureCoords measure = (MeasureCoords)trackCoords.getMeasuresCoords().get(j);
155
 
                measure.dispose();
156
 
            }
157
 
        }
158
 
    }   
159
 
}
 
 
b'\\ No newline at end of file'