Archived
0

sort items by localization name

This commit is contained in:
iMoHax
2015-02-21 16:14:28 +03:00
parent 125af8b569
commit ba427826fc
3 changed files with 20 additions and 2 deletions

View File

@@ -6,7 +6,7 @@ import javafx.beans.property.StringProperty;
import ru.trader.core.Group;
import ru.trader.view.support.Localization;
public class GroupModel {
public class GroupModel implements Comparable<GroupModel> {
private final Group group;
private StringProperty name;
@@ -39,6 +39,13 @@ public class GroupModel {
return Localization.getString("item.group." + group.getName(), group.getName());
}
@Override
public int compareTo(GroupModel other) {
int cmp = group.getType().compareTo(other.group.getType());
if (cmp != 0) return cmp;
return getName().compareTo(other.getName());
}
@Override
public String toString() {
return getName();

View File

@@ -9,7 +9,7 @@ import ru.trader.view.support.Localization;
import java.util.List;
public class ItemModel {
public class ItemModel implements Comparable<ItemModel> {
private final static Logger LOG = LoggerFactory.getLogger(ItemModel.class);
private final Item item;
@@ -17,17 +17,20 @@ public class ItemModel {
private final ItemStatModel statSell;
private final ItemStatModel statBuy;
private final GroupModel group;
ItemModel() {
this.item = null;
this.statSell = null;
this.statBuy = null;
this.group = null;
}
ItemModel(Item item, MarketModel market) {
this.item = item;
this.statSell = new ItemStatModel(market.getStat(OFFER_TYPE.SELL, item), market);
this.statBuy = new ItemStatModel(market.getStat(OFFER_TYPE.BUY, item), market);
this.group = market.getModeler().get(item.getGroup());
}
Item getItem(){
@@ -112,6 +115,13 @@ public class ItemModel {
}
}
@Override
public int compareTo(ItemModel other) {
int cmp = group != null ? other.group != null ? group.compareTo(other.group) : 1 : 0;
if (cmp != 0) return cmp;
return getName().compareTo(other.getName());
}
@Override
public String toString() {
if (LOG.isTraceEnabled()){

View File

@@ -45,6 +45,7 @@ public class MarketModel {
notificator = new Notificator();
groups = new SimpleListProperty<>(BindingsHelper.observableList(market.getGroups(), modeler::get));
items = new SimpleListProperty<>(BindingsHelper.observableList(market.getItems(), modeler::get));
items.sort((i1, i2) -> i1.compareTo(i2));
systems = new SimpleListProperty<>(BindingsHelper.observableList(market.get(), modeler::get));
systemsList = new SimpleListProperty<>(FXCollections.observableArrayList(ModelFabric.NONE_SYSTEM));
systemsList.addAll(systems);