package de.zigapeda.flowspring.gui;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import de.zigapeda.flowspring.data.Column;
public class MedialibraryRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 6911856360056074741L;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(component instanceof JLabel) {
JLabel label = (JLabel) component;
label.setHorizontalAlignment(LEFT);
// getName(); 0
// getArtist(); 1
// getAlbum(); 2
// getGenre(); 3
// getTrack(); 4
// getYear(); 5
// getDuration(); 6
// getComment(); 7
// getRating(); 8
// getPlaycount(); 9
switch(Column.getMedialibrarycolumns().get(column).getColumn().getModelIndex()) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
try {
Integer.valueOf((String)value);
label.setHorizontalAlignment(RIGHT);
} catch (NumberFormatException e) {}
break;
case 5:
try {
Integer.valueOf((String)value);
label.setHorizontalAlignment(RIGHT);
} catch (NumberFormatException e) {}
break;
case 6:
if(value != null) {
int duration = (int) value;
int hor = 0;
int min = 0;
int sec = 0;
if(duration > 59) {
if(duration > 3599) {
hor = duration / 3600;
min = (duration % 3600) / 60;
sec = duration % 60;
} else {
min = duration / 60;
sec = duration % 60;
}
} else {
sec = duration;
}
if(hor == 0) {
if(sec < 10) {
label.setText(String.valueOf(min) + ":0" + String.valueOf(sec));
} else {
label.setText(String.valueOf(min) + ":" + String.valueOf(sec));
}
} else {
if(min < 10) {
if(sec < 10) {
label.setText(String.valueOf(hor) + ":0" + String.valueOf(min) + ":0" + String.valueOf(sec));
} else {
label.setText(String.valueOf(hor) + ":0" + String.valueOf(min) + ":" + String.valueOf(sec));
}
} else {
if(sec < 10) {
label.setText(String.valueOf(hor) + ":" + String.valueOf(min) + ":0" + String.valueOf(sec));
} else {
label.setText(String.valueOf(hor) + ":" + String.valueOf(min) + ":" + String.valueOf(sec));
}
}
}
}
label.setHorizontalAlignment(RIGHT);
break;
case 7:
break;
case 8:
break;
case 9:
try {
Integer.valueOf((String)value);
label.setHorizontalAlignment(RIGHT);
} catch (NumberFormatException e) {}
break;
}
return label;
}
return component;
}
}