diff --git a/client/src/main/java/ru/trader/controllers/MainController.java b/client/src/main/java/ru/trader/controllers/MainController.java index 345ded1..a450e25 100644 --- a/client/src/main/java/ru/trader/controllers/MainController.java +++ b/client/src/main/java/ru/trader/controllers/MainController.java @@ -65,8 +65,10 @@ public class MainController { } toggleGroup.selectedToggleProperty().addListener((cb, o, n) -> { try { - if (n!=null) + if (n != null) { Main.changeLocale((Locale) n.getUserData()); + world.refresh(); + } } catch (IOException e) { LOG.error("Error on change locale to {}", n.getUserData()); LOG.error("",e); diff --git a/client/src/main/java/ru/trader/model/GroupModel.java b/client/src/main/java/ru/trader/model/GroupModel.java index 6ee5109..706a084 100644 --- a/client/src/main/java/ru/trader/model/GroupModel.java +++ b/client/src/main/java/ru/trader/model/GroupModel.java @@ -39,6 +39,12 @@ public class GroupModel implements Comparable { return Localization.getString("item.group." + group.getName(), group.getName()); } + void updateName(){ + if (name != null){ + name.setValue(buildName()); + } + } + @Override public int compareTo(GroupModel other) { int cmp = group.getType().compareTo(other.group.getType()); diff --git a/client/src/main/java/ru/trader/model/ItemModel.java b/client/src/main/java/ru/trader/model/ItemModel.java index ee38f57..a7d2a34 100644 --- a/client/src/main/java/ru/trader/model/ItemModel.java +++ b/client/src/main/java/ru/trader/model/ItemModel.java @@ -39,7 +39,7 @@ public class ItemModel implements Comparable { public String getId() {return item.getName();} - public String getName() {return name != null ? name.get() : Localization.getString("item." + item.getName(), item.getName());} + public String getName() {return name != null ? name.get() : buildName();} public void setName(String value) { LOG.info("Change name of item {} to {}", item, value); @@ -49,12 +49,22 @@ public class ItemModel implements Comparable { public ReadOnlyStringProperty nameProperty() { if (name == null) { - String lName = Localization.getString("item." + item.getName(), item.getName()); + String lName = buildName(); name = new SimpleStringProperty(lName); } return name; } + private String buildName(){ + return Localization.getString("item." + item.getName(), item.getName()); + } + + void updateName(){ + if (name != null){ + name.setValue(buildName()); + } + } + public ReadOnlyDoubleProperty avgBuyProperty() { return statBuy.avgProperty(); } diff --git a/client/src/main/java/ru/trader/model/MarketModel.java b/client/src/main/java/ru/trader/model/MarketModel.java index f24304f..789779b 100644 --- a/client/src/main/java/ru/trader/model/MarketModel.java +++ b/client/src/main/java/ru/trader/model/MarketModel.java @@ -252,4 +252,10 @@ public class MarketModel { LOG.info("Clear groups"); market.clearGroups(); } + + public void refresh(){ + LOG.debug("Refresh names"); + groups.get().forEach(GroupModel::updateName); + items.get().forEach(ItemModel::updateName); + } }