17
17
import java .io .FileInputStream ;
18
18
import java .io .IOException ;
19
19
import java .io .ObjectInputStream ;
20
+ import java .text .DecimalFormat ;
20
21
import java .util .Arrays ;
21
22
import java .util .List ;
22
23
import java .util .ArrayList ;
@@ -75,9 +76,12 @@ public Interface() {
75
76
table_sorter = new TableRowSorter <ChartListTableModel >(model_songlist );
76
77
table_songlist .setRowSorter (table_sorter );
77
78
txt_filter .getDocument ().addDocumentListener (new DocumentListener () {
79
+ @ Override
78
80
public void insertUpdate (DocumentEvent e ) {updateFilter ();}
81
+ @ Override
79
82
public void removeUpdate (DocumentEvent e ) {updateFilter ();}
80
- public void changedUpdate (DocumentEvent e ) {updateFilter ();}
83
+ @ Override
84
+ public void changedUpdate (DocumentEvent e ) {}
81
85
});
82
86
83
87
loadDirlist ();
@@ -99,13 +103,15 @@ public void windowClosed(WindowEvent arg0) {
99
103
col .setPreferredWidth (80 );
100
104
101
105
table_chartlist .getSelectionModel ().addListSelectionListener (new ListSelectionListener () {
106
+ @ Override
102
107
public void valueChanged (ListSelectionEvent e )
103
108
{
104
109
if (e .getValueIsAdjusting ()) return ;
105
110
javax .swing .ListSelectionModel lsm = (javax .swing .ListSelectionModel )e .getSource ();
106
111
if (lsm .isSelectionEmpty ()) return ;
107
112
int selectedRow = lsm .getMinSelectionIndex ();
108
113
if (selectedRow < 0 ) return ;
114
+ if (selected_chart .get (selectedRow ) == selected_header )return ;
109
115
selected_header = selected_chart .get (selectedRow );
110
116
if (selectedRow != rank )
111
117
{
@@ -917,6 +923,7 @@ private void initLogic() {
917
923
List <DisplayMode > list = Arrays .asList (Display .getAvailableDisplayModes ());
918
924
919
925
Collections .sort (list , new Comparator <DisplayMode >() {
926
+ @ Override
920
927
public int compare (DisplayMode dm1 , DisplayMode dm2 ) {
921
928
922
929
if (dm1 .getBitsPerPixel () == dm2 .getBitsPerPixel ())
@@ -1012,6 +1019,7 @@ private void loadDirlist()
1012
1019
}
1013
1020
}
1014
1021
1022
+ @ Override
1015
1023
public void propertyChange (PropertyChangeEvent evt ) {
1016
1024
if ("progress" .equals (evt .getPropertyName ()))
1017
1025
{
@@ -1037,6 +1045,7 @@ void updateFilter() {
1037
1045
}
1038
1046
}
1039
1047
1048
+ @ Override
1040
1049
public void valueChanged (ListSelectionEvent e ) {
1041
1050
int i = table_songlist .getSelectedRow ();
1042
1051
if (i < 0 && last_model_idx >= 0 ){
@@ -1047,6 +1056,7 @@ public void valueChanged(ListSelectionEvent e) {
1047
1056
}else {
1048
1057
i = table_songlist .convertRowIndexToModel (i );
1049
1058
}
1059
+ if (model_songlist .getRow (i ) == selected_chart )return ;
1050
1060
selected_chart = model_songlist .getRow (i );
1051
1061
if (selected_chart .size () > rank )selected_header = selected_chart .get (rank );
1052
1062
if (selected_chart != model_chartlist .getChartList ()){
@@ -1057,9 +1067,11 @@ public void valueChanged(ListSelectionEvent e) {
1057
1067
table_chartlist .getSelectionModel ().setSelectionInterval (0 , 0 );
1058
1068
else
1059
1069
table_chartlist .getSelectionModel ().setSelectionInterval (0 , rank );
1070
+
1060
1071
updateInfo ();
1061
1072
}
1062
1073
1074
+ private DecimalFormat bpm_format = new DecimalFormat (".##" );
1063
1075
private void updateInfo ()
1064
1076
{
1065
1077
if (selected_header == null )return ;
@@ -1069,11 +1081,10 @@ private void updateInfo()
1069
1081
lbl_filename .setText (resizeString (selected_header .getSource ().getName (), 30 ));
1070
1082
lbl_genre .setText (resizeString (selected_header .getGenre (), 30 ));
1071
1083
lbl_level .setText (selected_header .getLevel ()+"" );
1072
- lbl_bpm .setText (Float . toString (( float ) selected_header .getBPM ()* 100 / 100 ));
1084
+ lbl_bpm .setText (bpm_format . format ( selected_header .getBPM ()));
1073
1085
lbl_notes .setText (selected_header .getNoteCount ()+"" );
1074
1086
lbl_keys .setText (selected_header .getKeys ()+"" );
1075
- int d = selected_header .getDuration ();
1076
- lbl_time .setText ((d /60 )+":" +(d %60 < 10 ? "0" +(d %60 ) : (d %60 )));
1087
+ lbl_time .setText (time2Text (selected_header .getDuration ()));
1077
1088
1078
1089
BufferedImage i = selected_header .getCover ();
1079
1090
@@ -1086,6 +1097,12 @@ private void updateInfo()
1086
1097
else
1087
1098
lbl_cover .setIcon (null );
1088
1099
}
1100
+
1101
+ private String time2Text (int secs ) {
1102
+ int h = secs / 60 ;
1103
+ int m = secs % 60 ;
1104
+ return m < 10 ? h +":0" +m : h +":" +m ;
1105
+ }
1089
1106
1090
1107
private String resizeString (String string , int size )
1091
1108
{
0 commit comments