Hallo zusammen,
wie würdet ihr diesen Code schöner schreiben, oft komme ich zu so ein Pattern und weiß halt nicht wie es besser gehen kann. Dieser Code soll Tabellenspalten sortieren, jenachdem welche Spalte selektiert ist. Es geht mir nur rein ums schöner schreiben.
Grüße
lam
wie würdet ihr diesen Code schöner schreiben, oft komme ich zu so ein Pattern und weiß halt nicht wie es besser gehen kann. Dieser Code soll Tabellenspalten sortieren, jenachdem welche Spalte selektiert ist. Es geht mir nur rein ums schöner schreiben.
Code:
private void initTableSort() {
boolean isAsc = buttonASC.isSelected();
if (radioId.isSelected()) {
masterDataService.getBookings().sort((o1, o2) -> {
if (isAsc) {
return o1.getId().compareTo(o2.getId());
}
return o2.getId().compareTo(o1.getId());
});
} else if (radioBetrag.isSelected()) {
masterDataService.getBookings().sort((o1, o2) -> {
if (isAsc) {
return Double.valueOf(o1.getAmount()).compareTo(Double.valueOf(o2.getAmount()));
}
return Double.valueOf(o2.getAmount()).compareTo(Double.valueOf(o1.getAmount()));
});
} else if (radioDatum.isSelected()) {
masterDataService.getBookings().sort((o1, o2) -> {
if (isAsc) {
return o1.getBookDate().compareTo(o2.getBookDate());
}
return o2.getBookDate().compareTo(o1.getBookDate());
});
} else if (radioKonto.isSelected()) {
masterDataService.getBookings().sort((o1, o2) -> {
if (isAsc) {
return o1.getAccount().getName().compareTo(o2.getAccount().getName());
}
return o2.getAccount().getName().compareTo(o1.getAccount().getName());
});
} else if (radioTyp.isSelected()) {
masterDataService.getBookings().sort((o1, o2) -> {
if (isAsc) {
return o1.getBookingType().compareTo(o2.getBookingType());
}
return o2.getBookingType().compareTo(o1.getBookingType());
});
} else if (radioVorgang.isSelected()) {
masterDataService.getBookings().sort((o1, o2) -> {
if (isAsc) {
return o1.getProcess().getName().compareTo(o2.getProcess().getName());
}
return o2.getProcess().getName().compareTo(o1.getProcess().getName());
});
}else if (radioTaxRate.isSelected()) {
masterDataService.getBookings().sort((o1, o2) -> {
if (isAsc) {
return (int) (o1.getTaxRate()-o2.getTaxRate());
}
return (int) (o2.getTaxRate()-o1.getTaxRate());
});
}
filteredTableView.setInput(masterDataService.getBookings());
}
Grüße
lam