2
* Created on 29-nov-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.editors.tab;
9
import java.util.ArrayList;
10
import java.util.List;
12
import org.herac.tuxguitar.song.managers.SongManager;
13
import org.herac.tuxguitar.song.models.SongTrack;
18
* TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates
20
public class SongCoords {
21
private Tablature tablature;
22
private SongManager songManager;
23
private List tracksCoords;
24
private List measureHeaders;
26
public SongCoords(Tablature tablature,SongManager songManager) {
27
this.tablature = tablature;
28
this.songManager = songManager;
33
this.tracksCoords = new ArrayList();
34
this.measureHeaders = new ArrayList();
37
public void create(int tracks,int measures){
38
this.tracksCoords = new ArrayList(tracks);
39
this.measureHeaders = new ArrayList(measures);
42
public SongTrackCoords getTrackAt(int y){
43
int number = this.tablature.getViewLayout().getTrackNumberAt(this.tracksCoords,y);
45
return getTrack(number);
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;
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);
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;
84
track = (SongTrackCoords)this.tracksCoords.get(prevIndex);
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;
104
public SongTrackCoords getFirstTrack(){
105
SongTrackCoords track = null;
106
if(!this.tracksCoords.isEmpty()){
107
track = (SongTrackCoords)this.tracksCoords.get(0);
112
public SongTrackCoords getLastTrack(){
113
SongTrackCoords track = null;
114
if(!this.tracksCoords.isEmpty()){
115
track = (SongTrackCoords)this.tracksCoords.get(this.tracksCoords.size() - 1);
120
public SongManager getSongManager() {
123
public void setSongManager(SongManager songManager) {
124
this.songManager = songManager;
126
public List getTrackCoords(){
127
return this.tracksCoords;
130
public SongTrackCoords getTrackByIndex(int index) {
131
if(tracksCoords.size() > index){
132
return (SongTrackCoords)tracksCoords.get(index);
134
SongTrackCoords track = new SongTrackCoords(tablature,songManager,songManager.getTrack(index + 1),tablature.getViewLayout());
135
tracksCoords.add(track);
139
public MeasureHeaderGui getHeaderByIndex(int index) {
140
if(measureHeaders.size() > index){
141
return (MeasureHeaderGui)measureHeaders.get(index);
143
MeasureHeaderGui header = new MeasureHeaderGui(songManager.getMeasureHeader(index + 1));
144
measureHeaders.add(header);
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);
b'\\ No newline at end of file'