diff --git a/src/main/java/io/bitsquare/bank/BankAccount.java b/src/main/java/io/bitsquare/bank/BankAccount.java index 60c5dbf903..c7e3f81335 100644 --- a/src/main/java/io/bitsquare/bank/BankAccount.java +++ b/src/main/java/io/bitsquare/bank/BankAccount.java @@ -1,6 +1,7 @@ package io.bitsquare.bank; import java.io.Serializable; +import java.util.Currency; import java.util.Locale; public class BankAccount implements Serializable @@ -13,25 +14,27 @@ public class BankAccount implements Serializable private String accountPrimaryID; private String accountSecondaryID; private String accountHolderName; - private Locale locale; - + private Locale countryLocale; + private Currency currency; private String uid; // TODO just for mock yet public BankAccount(BankAccountType bankAccountType) { this.bankAccountType = bankAccountType; + } - public BankAccount(BankAccountType bankAccountType, String accountPrimaryID, String accountSecondaryID, String accountHolderName, Locale locale) + public BankAccount(BankAccountType bankAccountType, String accountPrimaryID, String accountSecondaryID, String accountHolderName, Locale countryLocale, Currency currency) { this.bankAccountType = bankAccountType; this.accountPrimaryID = accountPrimaryID; this.accountSecondaryID = accountSecondaryID; this.accountHolderName = accountHolderName; - this.locale = locale; + this.countryLocale = countryLocale; + this.currency = currency; - uid = bankAccountType + "_" + accountPrimaryID + "_" + accountSecondaryID + "_" + accountHolderName + "_" + locale.getISO3Country(); + uid = bankAccountType + "_" + accountPrimaryID + "_" + accountSecondaryID + "_" + accountHolderName + "_" + countryLocale.getISO3Country(); } public String getAccountPrimaryID() @@ -54,6 +57,16 @@ public class BankAccount implements Serializable return bankAccountType; } + public Currency getCurrency() + { + return currency; + } + + public Locale getCountryLocale() + { + return countryLocale; + } + public String getUid() { return uid; @@ -67,8 +80,16 @@ public class BankAccount implements Serializable ", primaryID='" + accountPrimaryID + '\'' + ", secondaryID='" + accountSecondaryID + '\'' + ", holderName='" + accountHolderName + '\'' + - ", country='" + locale.getISO3Country() + '\'' + + ", currency='" + currency.getCurrencyCode() + '\'' + + ", country='" + countryLocale.getISO3Country() + '\'' + ", v='" + VERSION + '\'' + '}'; } + + public String getShortName() + { + return bankAccountType + " " + accountPrimaryID + " / " + accountSecondaryID + " / " + currency.getCurrencyCode(); + } + + } diff --git a/src/main/java/io/bitsquare/btc/WalletUtil.java b/src/main/java/io/bitsquare/btc/WalletUtil.java index 3f74975634..b54d55db1d 100644 --- a/src/main/java/io/bitsquare/btc/WalletUtil.java +++ b/src/main/java/io/bitsquare/btc/WalletUtil.java @@ -16,8 +16,10 @@ public class WalletUtil Transaction transaction = WalletUtil.getTransaction(wallet); if (transaction != null && transaction.getConfidence() != null) { - int appearedAtChainHeight = (transaction.getConfidence().getConfidenceType() == TransactionConfidence.ConfidenceType.BUILDING) ? transaction.getConfidence().getAppearedAtChainHeight() : 0; - return wallet.getLastBlockSeenHeight() - appearedAtChainHeight + 1; + if (transaction.getConfidence().getConfidenceType() == TransactionConfidence.ConfidenceType.BUILDING) + return wallet.getLastBlockSeenHeight() - transaction.getConfidence().getAppearedAtChainHeight() + 1; + else + return 0; } else { diff --git a/src/main/java/io/bitsquare/gui/MainController.java b/src/main/java/io/bitsquare/gui/MainController.java index 7cf9ac8d63..76dcda7624 100644 --- a/src/main/java/io/bitsquare/gui/MainController.java +++ b/src/main/java/io/bitsquare/gui/MainController.java @@ -1,6 +1,7 @@ package io.bitsquare.gui; import com.google.inject.Inject; +import io.bitsquare.bank.BankAccount; import io.bitsquare.btc.WalletFacade; import io.bitsquare.di.GuiceFXMLLoader; import io.bitsquare.gui.components.NetworkSyncPane; @@ -25,12 +26,12 @@ import javafx.scene.control.*; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.*; +import javafx.util.StringConverter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.net.URL; -import java.util.Currency; import java.util.Date; import java.util.ResourceBundle; @@ -171,7 +172,7 @@ public class MainController implements Initializable, NavigationController, Wall addNavButton(leftNavPane, "Funds", Icons.FUNDS, Icons.FUNDS, NavigationController.FUNDS); addNavButton(leftNavPane, "Message", Icons.MSG, Icons.MSG, NavigationController.MSG); addBalanceInfo(rightNavPane); - addCurrencyComboBox(); + addAccountComboBox(); addNavButton(rightNavPane, "Settings", Icons.SETTINGS, Icons.SETTINGS, NavigationController.SETTINGS); @@ -255,24 +256,44 @@ public class MainController implements Initializable, NavigationController, Wall return balanceLabel; } - private void addCurrencyComboBox() + private void addAccountComboBox() { - Pane holder = new Pane(); - ComboBox currencyComboBox = new ComboBox(FXCollections.observableArrayList(settings.getAllCurrencies())); - currencyComboBox.setLayoutY(12); - currencyComboBox.setValue(Settings.getCurrency()); - - currencyComboBox.valueProperty().addListener(new ChangeListener() + if (user.getBankAccounts().size() > 1) { - @Override - public void changed(ObservableValue ov, Currency oldValue, Currency newValue) + ComboBox accountComboBox = new ComboBox(FXCollections.observableArrayList(user.getBankAccounts())); + accountComboBox.setLayoutY(12); + accountComboBox.setValue(user.getCurrentBankAccount()); + accountComboBox.setConverter(new StringConverter() { - orderBookFilter.setCurrency(newValue); - settings.setCurrency(newValue); - } - }); - holder.getChildren().add(currencyComboBox); - rightNavPane.getChildren().add(holder); + @Override + public String toString(BankAccount bankAccount) + { + return bankAccount.getShortName(); + } + + @Override + public BankAccount fromString(String s) + { + return null; + } + }); + + + accountComboBox.valueProperty().addListener(new ChangeListener() + { + @Override + public void changed(ObservableValue ov, BankAccount oldValue, BankAccount newValue) + { + user.setCurrentBankAccount(newValue); + orderBookFilter.setCurrency(newValue.getCurrency()); + orderBookFilter.setCountryLocale(newValue.getCountryLocale()); + } + }); + + Pane holder = new Pane(); + holder.getChildren().add(accountComboBox); + rightNavPane.getChildren().add(holder); + } } diff --git a/src/main/java/io/bitsquare/gui/setup/SetupController.java b/src/main/java/io/bitsquare/gui/setup/SetupController.java index fc5cd27064..6f88f7ae1d 100644 --- a/src/main/java/io/bitsquare/gui/setup/SetupController.java +++ b/src/main/java/io/bitsquare/gui/setup/SetupController.java @@ -50,7 +50,8 @@ public class SetupController implements Initializable, ChildController, WalletFa private NavigationController navigationController; private ImageView confirmIconImageView; private TextField balanceLabel, confirmationsLabel, accountHolderName, accountPrimaryID, accountSecondaryID; - private ComboBox countryComboBox, bankTransferTypeComboBox; + private ComboBox countryComboBox, bankTransferTypeComboBox, currencyComboBox; + private Button addBankAccountButton; @FXML private AnchorPane rootContainer; @@ -123,15 +124,19 @@ public class SetupController implements Initializable, ChildController, WalletFa } // TODO need checks per bankTransferType - private boolean verifyBankAccountData(Object bankTransferTypeSelectedItem, String accountPrimaryID, String accountSecondaryID, String accountHolderName) + private boolean verifyBankAccountData() { - boolean result = bankTransferTypeSelectedItem != null; - result &= bankTransferTypeSelectedItem.toString().length() > 0; - result &= accountPrimaryID.length() > 0; - result &= accountSecondaryID.length() > 0; - result &= accountHolderName.length() > 0; - result &= Verification.verifyAccountIDsByBankTransferType(bankTransferTypeSelectedItem, accountPrimaryID, accountSecondaryID); - return result; + boolean accountIDsByBankTransferTypeValid = Verification.verifyAccountIDsByBankTransferType(bankTransferTypeComboBox.getSelectionModel().getSelectedItem(), + accountPrimaryID.getText(), + accountSecondaryID.getText()); + + return bankTransferTypeComboBox.getSelectionModel().getSelectedItem() != null + && countryComboBox.getSelectionModel().getSelectedItem() != null + && currencyComboBox.getSelectionModel().getSelectedItem() != null + && accountPrimaryID.getText().length() > 0 + && accountSecondaryID.getText().length() > 0 + && accountHolderName.getText().length() > 0 + && accountIDsByBankTransferTypeValid; } private Image getConfirmIconImage(int numBroadcastPeers, int depthInBlocks) @@ -222,35 +227,52 @@ public class SetupController implements Initializable, ChildController, WalletFa accountPrimaryID = FormBuilder.addInputField(formGridPane, "Bank account primary ID", "", ++gridRow); accountSecondaryID = FormBuilder.addInputField(formGridPane, "Bank account secondary ID:", "", ++gridRow); - countryComboBox = FormBuilder.addComboBox(formGridPane, "Country:", settings.getAllLocales("displayCountry"), ++gridRow); - countryComboBox.setPromptText("Select country"); - countryComboBox.setConverter(new StringConverter() + currencyComboBox = FormBuilder.addComboBox(formGridPane, "Currency used for bank account:", settings.getAllCurrencies(), ++gridRow); + currencyComboBox.setPromptText("Select currency"); + currencyComboBox.setConverter(new StringConverter() { @Override - public String toString(Object o) + public String toString(Currency currency) { - return ((Locale) o).getDisplayCountry(); + return currency.getCurrencyCode() + " (" + currency.getDisplayName() + ")"; } @Override - public Object fromString(String s) + public Currency fromString(String s) { - return s; + return null; + } + }); + + countryComboBox = FormBuilder.addComboBox(formGridPane, "Country of bank account:", settings.getAllLocales(), ++gridRow); + countryComboBox.setPromptText("Select country"); + countryComboBox.setConverter(new StringConverter() + { + @Override + public String toString(Locale locale) + { + return locale.getDisplayCountry(); + } + + @Override + public Locale fromString(String s) + { + return null; } }); - Button addButton = new Button("Add other Bank account"); - formGridPane.add(addButton, 1, ++gridRow); + addBankAccountButton = new Button("Add other Bank account"); + formGridPane.add(addBankAccountButton, 1, ++gridRow); nextButton.setText("Create account"); checkCreateAccountButtonState(); skipButton.setText("Register later"); // handlers - accountHolderName.focusedProperty().addListener((ov, oldValue, newValue) -> checkCreateAccountButtonState()); - accountPrimaryID.focusedProperty().addListener((ov, oldValue, newValue) -> checkCreateAccountButtonState()); - accountSecondaryID.focusedProperty().addListener((ov, oldValue, newValue) -> checkCreateAccountButtonState()); + accountHolderName.textProperty().addListener((ov, oldValue, newValue) -> checkCreateAccountButtonState()); + accountPrimaryID.textProperty().addListener((ov, oldValue, newValue) -> checkCreateAccountButtonState()); + accountSecondaryID.textProperty().addListener((ov, oldValue, newValue) -> checkCreateAccountButtonState()); bankTransferTypeComboBox.valueProperty().addListener((ov, oldValue, newValue) -> { if (newValue != null && newValue instanceof BankAccountType) @@ -265,31 +287,13 @@ public class SetupController implements Initializable, ChildController, WalletFa } }); - countryComboBox.valueProperty().addListener((ov, oldValue, newValue) -> { - if (newValue != null && newValue instanceof BankAccountType) - { - if (newValue != null) - { - checkCreateAccountButtonState(); - } - } - }); + currencyComboBox.valueProperty().addListener((ov, oldValue, newValue) -> checkCreateAccountButtonState()); + countryComboBox.valueProperty().addListener((ov, oldValue, newValue) -> checkCreateAccountButtonState()); - addButton.setOnAction(e -> { - if (bankTransferTypeComboBox.getSelectionModel() != null - && verifyBankAccountData(bankTransferTypeComboBox.getSelectionModel().getSelectedItem(), - accountPrimaryID.getText(), - accountSecondaryID.getText(), - accountHolderName.getText())) + addBankAccountButton.setOnAction(e -> { + addBankAccount(); + if (verifyBankAccountData()) { - user.addBankAccount(new BankAccount( - (BankAccountType) bankTransferTypeComboBox.getSelectionModel().getSelectedItem(), - accountPrimaryID.getText(), - accountSecondaryID.getText(), - accountHolderName.getText(), - (Locale) countryComboBox.getSelectionModel().getSelectedItem()) - ); - bankTransferTypeComboBox.getSelectionModel().clearSelection(); accountPrimaryID.setText(""); accountPrimaryID.setPromptText(""); @@ -299,21 +303,7 @@ public class SetupController implements Initializable, ChildController, WalletFa }); nextButton.setOnAction(e -> { - boolean inputValid = verifyBankAccountData(bankTransferTypeComboBox.getSelectionModel().getSelectedItem(), - accountPrimaryID.getText(), - accountSecondaryID.getText(), - accountHolderName.getText()); - - - if (bankTransferTypeComboBox.getSelectionModel() != null && countryComboBox.getSelectionModel() != null && inputValid) - { - BankAccount bankAccount = new BankAccount((BankAccountType) bankTransferTypeComboBox.getSelectionModel().getSelectedItem(), - accountPrimaryID.getText(), - accountSecondaryID.getText(), - accountHolderName.getText(), - (Locale) countryComboBox.getSelectionModel().getSelectedItem()); - user.addBankAccount(bankAccount); - } + addBankAccount(); if (user.getBankAccounts().size() > 0) { @@ -342,16 +332,24 @@ public class SetupController implements Initializable, ChildController, WalletFa skipButton.setOnAction(e -> close()); } + private void addBankAccount() + { + if (verifyBankAccountData()) + { + BankAccount bankAccount = new BankAccount((BankAccountType) bankTransferTypeComboBox.getSelectionModel().getSelectedItem(), + accountPrimaryID.getText(), + accountSecondaryID.getText(), + accountHolderName.getText(), + (Locale) countryComboBox.getSelectionModel().getSelectedItem(), + (Currency) currencyComboBox.getSelectionModel().getSelectedItem()); + user.addBankAccount(bankAccount); + } + } + private void checkCreateAccountButtonState() { - boolean enabled = accountHolderName.getText().length() > 0 - && accountPrimaryID.getText().length() > 0 - && accountSecondaryID.getText().length() > 0 - && bankTransferTypeComboBox.getSelectionModel() != null - && bankTransferTypeComboBox.getSelectionModel().getSelectedItem() != null - && countryComboBox.getSelectionModel() != null - && countryComboBox.getSelectionModel().getSelectedItem() != null; - nextButton.setDisable(!enabled); + nextButton.setDisable(!verifyBankAccountData()); + addBankAccountButton.setDisable(!verifyBankAccountData()); } private void buildStep2() @@ -361,8 +359,8 @@ public class SetupController implements Initializable, ChildController, WalletFa formGridPane.getChildren().clear(); int gridRow = -1; - Map bankAccounts = user.getBankAccounts(); - Iterator iterator = bankAccounts.entrySet().iterator(); + List bankAccounts = user.getBankAccounts(); + Iterator iterator = bankAccounts.iterator(); int index = 0; while (iterator.hasNext()) { diff --git a/src/main/java/io/bitsquare/gui/trade/orderbook/OrderBookController.java b/src/main/java/io/bitsquare/gui/trade/orderbook/OrderBookController.java index 22aa3afc3a..d3ddc345c2 100644 --- a/src/main/java/io/bitsquare/gui/trade/orderbook/OrderBookController.java +++ b/src/main/java/io/bitsquare/gui/trade/orderbook/OrderBookController.java @@ -1,6 +1,7 @@ package io.bitsquare.gui.trade.orderbook; import com.google.inject.Inject; +import io.bitsquare.bank.BankAccountType; import io.bitsquare.gui.ChildController; import io.bitsquare.gui.NavigationController; import io.bitsquare.gui.trade.offer.CreateOfferController; @@ -8,36 +9,39 @@ import io.bitsquare.gui.trade.tradeprocess.TradeProcessController; import io.bitsquare.gui.util.Converter; import io.bitsquare.gui.util.Formatter; import io.bitsquare.gui.util.Icons; +import io.bitsquare.gui.util.Localisation; import io.bitsquare.settings.Settings; import io.bitsquare.trade.Direction; import io.bitsquare.trade.orderbook.OrderBook; import io.bitsquare.trade.orderbook.OrderBookFilter; +import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.Initializable; -import javafx.scene.control.Button; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.scene.control.TextField; +import javafx.geometry.Pos; +import javafx.scene.control.*; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.HBox; -import javafx.scene.layout.Pane; +import javafx.util.Callback; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.net.URL; import java.text.DecimalFormat; import java.text.ParseException; -import java.util.Arrays; +import java.util.List; +import java.util.Locale; import java.util.ResourceBundle; public class OrderBookController implements Initializable, ChildController { + private static final Logger log = LoggerFactory.getLogger(OrderBookController.class); private NavigationController navigationController; private OrderBook orderBook; - private Settings settings; private OrderBookListItem selectedOrderBookListItem; private final OrderBookFilter orderBookFilter; @@ -51,41 +55,27 @@ public class OrderBookController implements Initializable, ChildController @FXML public HBox topHBox; @FXML - private Button tradeButton; - @FXML public TextField volume, amount, price; @FXML - public Pane filterPane; - @FXML public TableView orderBookTable; @FXML public TableColumn priceColumn, amountColumn, volumeColumn; @FXML - private ImageView tradeButtonImageView; + private TableColumn directionColumn, countryColumn, bankAccountTypeColumn; @Inject - public OrderBookController(OrderBook orderBook, OrderBookFilter orderBookFilter, Settings settings) + public OrderBookController(OrderBook orderBook, OrderBookFilter orderBookFilter) { this.orderBook = orderBook; this.orderBookFilter = orderBookFilter; - this.settings = settings; } @Override public void initialize(URL url, ResourceBundle rb) { - orderBookFilter.getCurrencyProperty().addListener(new ChangeListener() - { - @Override - public void changed(ObservableValue observable, String oldValue, String newValue) - { - updateOfferList(); - } - }); - - createFilterPane(); - - updateOfferList(); + setCountryColumnCellFactory(); + setBankAccountTypeColumnCellFactory(); + setDirectionColumnCellFactory(); amount.textProperty().addListener(new ChangeListener() { @@ -93,7 +83,6 @@ public class OrderBookController implements Initializable, ChildController public void changed(ObservableValue observable, String oldValue, String newValue) { orderBookFilter.setAmount(textInputToNumber(oldValue, newValue)); - updateOfferList(); updateVolume(); } }); @@ -104,19 +93,24 @@ public class OrderBookController implements Initializable, ChildController public void changed(ObservableValue observable, String oldValue, String newValue) { orderBookFilter.setPrice(textInputToNumber(oldValue, newValue)); - updateOfferList(); updateVolume(); } }); orderBookTable.getSelectionModel().selectedItemProperty().addListener((observableValue, oldValue, newValue) -> { selectedOrderBookListItem = orderBookTable.getSelectionModel().getSelectedItem(); - tradeButton.setDisable(selectedOrderBookListItem == null); }); - tradeButton.setOnAction(e -> openTradeTab(selectedOrderBookListItem)); - tradeButton.setDisable(true); - tradeButton.setDefaultButton(true); + orderBookFilter.getChangedProperty().addListener(new ChangeListener() + { + @Override + public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) + { + updateOfferList(); + } + }); + + updateOfferList(); } @Override @@ -128,26 +122,8 @@ public class OrderBookController implements Initializable, ChildController public void setDirection(Direction direction) { orderBookTable.getSelectionModel().clearSelection(); - tradeButton.setDisable(true); price.setText(""); - - String title; - Image icon; - if (direction == Direction.SELL) - { - title = "SELL"; - icon = sellIcon; - } - else - { - title = "BUY"; - icon = buyIcon; - } - tradeButton.setText(title); - tradeButtonImageView.setImage(icon); orderBookFilter.setDirection(direction); - - updateOfferList(); } private void openTradeTab(OrderBookListItem orderBookListItem) @@ -167,8 +143,8 @@ public class OrderBookController implements Initializable, ChildController if (createOfferButton == null) { createOfferButton = new Button("Create new offer"); - holderPane.setBottomAnchor(createOfferButton, 375.0); - holderPane.setLeftAnchor(createOfferButton, 200.0); + holderPane.setBottomAnchor(createOfferButton, 360.0); + holderPane.setLeftAnchor(createOfferButton, 10.0); holderPane.getChildren().add(createOfferButton); createOfferButton.setOnAction(e -> { @@ -178,7 +154,7 @@ public class OrderBookController implements Initializable, ChildController } createOfferButton.setVisible(true); - holderPane.setBottomAnchor(orderBookTable, 410.0); + holderPane.setBottomAnchor(orderBookTable, 390.0); } private void updateOfferList() @@ -199,18 +175,167 @@ public class OrderBookController implements Initializable, ChildController } } - private void createFilterPane() + private void setDirectionColumnCellFactory() { - OrderBook mockOrderBook = new OrderBook(settings); - orderBookFilter.setOfferConstraints(mockOrderBook.getRandomOfferConstraints()); + directionColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper(offer.getValue())); + directionColumn.setCellFactory(new Callback, TableCell>() + { + @Override + public TableCell call(TableColumn directionColumn) + { + return new TableCell() + { + final ImageView iconView = new ImageView(); + final Button button = new Button(); - //OrderBookFilterTextItemBuilder.build(filterPane, "Bank transfer types: ", orderBookFilter.getOfferConstraints().getBankAccountTypes(), settings.getAllBankAccountTypes()); - OrderBookFilterTextItemBuilder.build(filterPane, "Countries: ", orderBookFilter.getOfferConstraints().getCountries(), settings.getAllCountries()); - OrderBookFilterTextItemBuilder.build(filterPane, "Languages: ", orderBookFilter.getOfferConstraints().getLanguages(), settings.getAllLanguages()); - OrderBookFilterTextItemBuilder.build(filterPane, "Collateral: ", Arrays.asList(String.valueOf(orderBookFilter.getOfferConstraints().getCollateral())), settings.getAllCollaterals()); - OrderBookFilterTextItemBuilder.build(filterPane, "Arbitrator: ", Arrays.asList(orderBookFilter.getOfferConstraints().getArbitrator()), settings.getAllArbitrators()); + { + button.setGraphic(iconView); + button.setMinWidth(70); + } + + @Override + public void updateItem(final OrderBookListItem orderBookListItem, boolean empty) + { + super.updateItem(orderBookListItem, empty); + + if (orderBookListItem != null) + { + String title; + Image icon; + if (orderBookListItem.getOffer().getDirection() == Direction.SELL) + { + icon = buyIcon; + title = Formatter.formatDirection(Direction.BUY, true); + } + else + { + icon = sellIcon; + title = Formatter.formatDirection(Direction.SELL, true); + } + iconView.setImage(icon); + button.setText(title); + setGraphic(button); + + button.setOnAction(event -> openTradeTab(orderBookListItem)); + } + else + { + setGraphic(null); + } + } + }; + } + }); } + private void setCountryColumnCellFactory() + { + countryColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper(offer.getValue())); + countryColumn.setCellFactory(new Callback, TableCell>() + { + @Override + public TableCell call(TableColumn directionColumn) + { + return new TableCell() + { + final HBox hBox = new HBox(); + + { + hBox.setSpacing(3); + hBox.setAlignment(Pos.CENTER); + setGraphic(hBox); + } + + @Override + public void updateItem(final OrderBookListItem orderBookListItem, boolean empty) + { + super.updateItem(orderBookListItem, empty); + + if (orderBookListItem != null) + { + hBox.getChildren().clear(); + setText(""); + + List countryLocales = orderBookListItem.getOffer().getOfferConstraints().getCountryLocales(); + int i = 0; + String countries = ""; + for (Locale countryLocale : countryLocales) + { + countries += countryLocale.getDisplayCountry(); + if (i < countryLocales.size() - 1) + countries += ", "; + + if (i < 4) + { + try + { + ImageView imageView = Icons.getIconImageView("/images/countries/" + countryLocale.getCountry().toLowerCase() + ".png"); + hBox.getChildren().add(imageView); + + } catch (Exception e) + { + log.warn("Country icon not found: " + "/images/countries/" + countryLocale.getCountry().toLowerCase() + ".png country name: " + countryLocale.getDisplayCountry()); + } + } + else + { + setText("..."); + } + i++; + } + Tooltip.install(this, new Tooltip(countries)); + } + else + { + setText(""); + hBox.getChildren().clear(); + } + } + }; + } + }); + } + + private void setBankAccountTypeColumnCellFactory() + { + bankAccountTypeColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper(offer.getValue())); + bankAccountTypeColumn.setCellFactory(new Callback, TableCell>() + { + @Override + public TableCell call(TableColumn directionColumn) + { + return new TableCell() + { + @Override + public void updateItem(final OrderBookListItem orderBookListItem, boolean empty) + { + super.updateItem(orderBookListItem, empty); + + if (orderBookListItem != null) + { + List bankAccountTypeEnums = orderBookListItem.getOffer().getOfferConstraints().getBankAccountTypes(); + String text = ""; + int i = 0; + for (BankAccountType.BankAccountTypeEnum bankAccountTypeEnum : bankAccountTypeEnums) + { + text += Localisation.get(bankAccountTypeEnum.toString()); + i++; + if (i < bankAccountTypeEnums.size()) + text += ", "; + } + setText(text); + if (text.length() > 20) + Tooltip.install(this, new Tooltip(text)); + } + else + { + setText(""); + } + } + }; + } + }); + } private double textInputToNumber(String oldValue, String newValue) { diff --git a/src/main/java/io/bitsquare/gui/trade/orderbook/OrderBookView.fxml b/src/main/java/io/bitsquare/gui/trade/orderbook/OrderBookView.fxml index 05375319fb..40b148cf63 100644 --- a/src/main/java/io/bitsquare/gui/trade/orderbook/OrderBookView.fxml +++ b/src/main/java/io/bitsquare/gui/trade/orderbook/OrderBookView.fxml @@ -1,10 +1,8 @@ - - - + - - - - - - - + - + - + + + + diff --git a/src/main/java/io/bitsquare/gui/trade/tradeprocess/TradeProcessController.java b/src/main/java/io/bitsquare/gui/trade/tradeprocess/TradeProcessController.java index abc95f13d0..738d94ff88 100644 --- a/src/main/java/io/bitsquare/gui/trade/tradeprocess/TradeProcessController.java +++ b/src/main/java/io/bitsquare/gui/trade/tradeprocess/TradeProcessController.java @@ -288,7 +288,7 @@ public class TradeProcessController implements Initializable, ChildController FormBuilder.addLabel(contractGridPane, "Price:", Formatter.formatPriceWithCurrencyPair(offer.getPrice(), offer.getCurrency()), ++row); collateralLabel2 = FormBuilder.addLabel(contractGridPane, "Collateral:", "", ++row); setCollateral(); - FormBuilder.addLabel(contractGridPane, "Language:", Formatter.formatList(offerConstraints.getLanguages()), ++row); + // FormBuilder.addLabel(contractGridPane, "Language:", Formatter.formatList(offerConstraints.getLanguageLocales()), ++row); FormBuilder.addLabel(contractGridPane, "Arbitrator:", offerConstraints.getArbitrator(), ++row); // FormBuilder.addLabel(contractGridPane, "Identity verification:", Formatter.formatList(offerConstraints.getIdentityVerifications()), ++row); FormBuilder.addLabel(contractGridPane, "Bank transfer reference ID:", "Purchase xyz 01.04.2014", ++row); @@ -297,7 +297,7 @@ public class TradeProcessController implements Initializable, ChildController FormBuilder.addHeaderLabel(contractGridPane, "Offerer data:", ++row); FormBuilder.addLabel(contractGridPane, "Account ID:", offerer.getAccountID(), ++row); FormBuilder.addLabel(contractGridPane, "Messaging ID:", offerer.getMessageID(), ++row); - FormBuilder.addLabel(contractGridPane, "Country:", offerer.getCountry(), ++row); + //FormBuilder.addLabel(contractGridPane, "Country:", offerer.getCountry(), ++row); offererPubKeyLabel = FormBuilder.addLabel(contractGridPane, "Payment public key:", contract.getOffererPubKey(), ++row); FormBuilder.addLabel(contractGridPane, "Bank transfer type:", offerer.getCurrentBankAccount().getBankAccountType().toString(), ++row); offererAccountPrimaryID = FormBuilder.addLabel(contractGridPane, "Bank account IBAN:", offerer.getCurrentBankAccount().getAccountPrimaryID(), ++row); @@ -308,7 +308,7 @@ public class TradeProcessController implements Initializable, ChildController FormBuilder.addHeaderLabel(contractGridPane, "Offer taker data:", ++row); FormBuilder.addLabel(contractGridPane, "Account ID:", taker.getAccountID(), ++row); FormBuilder.addLabel(contractGridPane, "Messaging ID:", taker.getMessageID(), ++row); - FormBuilder.addLabel(contractGridPane, "Country:", taker.getCountry(), ++row); + // FormBuilder.addLabel(contractGridPane, "Country:", taker.getCountry(), ++row); FormBuilder.addLabel(contractGridPane, "Payment public key:", contract.getTakerPubKey(), ++row); FormBuilder.addLabel(contractGridPane, "Bank transfer type:", taker.getCurrentBankAccount().getBankAccountType().toString(), ++row); FormBuilder.addLabel(contractGridPane, "Bank account IBAN:", taker.getCurrentBankAccount().getAccountPrimaryID(), ++row); diff --git a/src/main/java/io/bitsquare/settings/Settings.java b/src/main/java/io/bitsquare/settings/Settings.java index a5f72e42c3..0e4eb15295 100644 --- a/src/main/java/io/bitsquare/settings/Settings.java +++ b/src/main/java/io/bitsquare/settings/Settings.java @@ -43,30 +43,81 @@ public class Settings currency = Currency.getInstance("USD"); } - - //TODO remove duplicated entries, insert separators - public ArrayList getAllCurrencies() + public ArrayList getAllLocales() { - ArrayList currencies = new ArrayList<>(); - currencies.add(Currency.getInstance("USD")); - currencies.add(Currency.getInstance("EUR")); - currencies.add(Currency.getInstance("CNY")); - currencies.add(Currency.getInstance("RUB")); + ArrayList list = new ArrayList(Arrays.asList(Locale.getAvailableLocales())); + list.removeIf(new Predicate() + { + @Override + public boolean test(Locale locale) + { + return locale == null || locale.getCountry().equals("") || locale.getLanguage().equals(""); + } + }); - currencies.add(Currency.getInstance("JPY")); - currencies.add(Currency.getInstance("GBP")); - currencies.add(Currency.getInstance("CAD")); - currencies.add(Currency.getInstance("AUD")); - currencies.add(Currency.getInstance("CHF")); - currencies.add(Currency.getInstance("CNY")); + list.sort(new Comparator() + { + @Override + public int compare(Locale locale1, Locale locale2) + { + return locale1.getDisplayCountry().compareTo(locale2.getDisplayCountry()); + } + }); - /* Set otherCurrenciesSet = Currency.getAvailableCurrencies(); - ArrayList otherCurrenciesList = new ArrayList<>(); - otherCurrenciesList.addAll(otherCurrenciesSet); - Collections.sort(otherCurrenciesList, new CurrencyComparator()); + Locale defaultLocale = Locale.getDefault(); + list.remove(defaultLocale); + list.add(0, defaultLocale); - currencies.addAll(otherCurrenciesList); */ - return currencies; + return list; + } + + public List getAllCurrencies() + { + ArrayList mainCurrencies = new ArrayList<>(); + mainCurrencies.add(Currency.getInstance("USD")); + mainCurrencies.add(Currency.getInstance("EUR")); + mainCurrencies.add(Currency.getInstance("CNY")); + mainCurrencies.add(Currency.getInstance("RUB")); + mainCurrencies.add(Currency.getInstance("JPY")); + mainCurrencies.add(Currency.getInstance("GBP")); + mainCurrencies.add(Currency.getInstance("CAD")); + mainCurrencies.add(Currency.getInstance("AUD")); + mainCurrencies.add(Currency.getInstance("CHF")); + mainCurrencies.add(Currency.getInstance("CNY")); + + Set allCurrenciesSet = Currency.getAvailableCurrencies(); + + allCurrenciesSet.removeAll(mainCurrencies); + List allCurrenciesList = new ArrayList<>(allCurrenciesSet); + allCurrenciesList.sort(new Comparator() + { + @Override + public int compare(Currency a, Currency b) + { + return a.getCurrencyCode().compareTo(b.getCurrencyCode()); + } + }); + + List resultList = new ArrayList<>(mainCurrencies); + resultList.addAll(allCurrenciesList); + Currency defaultCurrency = Currency.getInstance(Locale.getDefault()); + resultList.remove(defaultCurrency); + resultList.add(0, defaultCurrency); + + return resultList; + } + + public ArrayList getAllBankAccountTypeEnums() + { + ArrayList bankAccountTypeEnums = new ArrayList<>(); + bankAccountTypeEnums.add(BankAccountType.BankAccountTypeEnum.SEPA); + bankAccountTypeEnums.add(BankAccountType.BankAccountTypeEnum.WIRE); + bankAccountTypeEnums.add(BankAccountType.BankAccountTypeEnum.INTERNATIONAL); + bankAccountTypeEnums.add(BankAccountType.BankAccountTypeEnum.OK_PAY); + bankAccountTypeEnums.add(BankAccountType.BankAccountTypeEnum.NET_TELLER); + bankAccountTypeEnums.add(BankAccountType.BankAccountTypeEnum.PERFECT_MONEY); + bankAccountTypeEnums.add(BankAccountType.BankAccountTypeEnum.OTHER); + return bankAccountTypeEnums; } public ArrayList getAllBankAccountTypes() @@ -82,74 +133,6 @@ public class Settings return bankTransferTypes; } - public ArrayList getAllCountries() - { - ArrayList bankTransferTypes = new ArrayList<>(); - bankTransferTypes.add("USA"); - bankTransferTypes.add("GB"); - bankTransferTypes.add("DE"); - bankTransferTypes.add("FR"); - bankTransferTypes.add("ES"); - bankTransferTypes.add("CH"); - bankTransferTypes.add("RUS"); - bankTransferTypes.add("AUS"); - bankTransferTypes.add("CAN"); - bankTransferTypes.add("AT"); - return bankTransferTypes; - } - - public ArrayList getAllLocales(String sortField) - { - ArrayList list = new ArrayList(Arrays.asList(Locale.getAvailableLocales())); - - list.removeIf(new Predicate() - { - @Override - public boolean test(Locale locale) - { - return locale == null || locale.getCountry().equals("") || locale.getLanguage().equals(""); - } - }); - - list.sort(new Comparator() - { - @Override - public int compare(Object o1, Object o2) - { - if (sortField.equals("displayCountry")) - return (((Locale) o1).getDisplayCountry()).compareTo(((Locale) o2).getDisplayCountry()); - else - return 1; - } - }); - Locale defaultLocale = Locale.getDefault(); - list.remove(defaultLocale); - list.add(0, defaultLocale); - - return list; - } - - /*public ArrayList getAllLanguages() - { - ArrayList result = new ArrayList<>(); - for (Locale locale : Locale.getAvailableLocales()) - { - result.add(locale.getDisplayLanguage()); - } - - return result; - } */ - public ArrayList getAllLanguages() - { - ArrayList bankTransferTypes = new ArrayList<>(); - bankTransferTypes.add("English"); - bankTransferTypes.add("Chinese"); - bankTransferTypes.add("Spanish"); - bankTransferTypes.add("Russian"); - bankTransferTypes.add("French"); - bankTransferTypes.add("Italian"); - return bankTransferTypes; - } public ArrayList getAllArbitrators() { diff --git a/src/main/java/io/bitsquare/trade/OfferConstraints.java b/src/main/java/io/bitsquare/trade/OfferConstraints.java index d1852d52ba..cd0398f5f1 100644 --- a/src/main/java/io/bitsquare/trade/OfferConstraints.java +++ b/src/main/java/io/bitsquare/trade/OfferConstraints.java @@ -3,51 +3,59 @@ package io.bitsquare.trade; import io.bitsquare.bank.BankAccountType; import java.util.List; +import java.util.Locale; public class OfferConstraints { + //TODO remove private double collateral; - private List countries; - private List languages; - private List bankAccountTypes; private String arbitrator; private String identityVerification; - public OfferConstraints(List countries, - List languages, + private List countryLocales; + private List languageLocales; + private List bankAccountTypes; + + public OfferConstraints(List countryLocales, + List languageLocales, double collateral, - List bankAccountTypes, + List bankAccountTypes, String arbitrator, String identityVerification) { - this.countries = countries; - this.languages = languages; - this.collateral = collateral; + this.countryLocales = countryLocales; + this.languageLocales = languageLocales; this.bankAccountTypes = bankAccountTypes; + + + this.collateral = collateral; this.arbitrator = arbitrator; this.identityVerification = identityVerification; } - public double getCollateral() + + /** + * @return List of ISO3 country codes + */ + public List getCountryLocales() { - return collateral; + return countryLocales; } - public List getCountries() + /** + * @return List of ISO3 language codes + */ + public List getLanguageLocales() { - return countries; + return languageLocales; } - public List getLanguages() - { - return languages; - } - - public List getBankAccountTypes() + public List getBankAccountTypes() { return bankAccountTypes; } + public String getArbitrator() { return arbitrator; @@ -57,4 +65,9 @@ public class OfferConstraints { return identityVerification; } + + public double getCollateral() + { + return collateral; + } } diff --git a/src/main/java/io/bitsquare/trade/orderbook/OrderBook.java b/src/main/java/io/bitsquare/trade/orderbook/OrderBook.java index 82a807119c..237b145ef1 100644 --- a/src/main/java/io/bitsquare/trade/orderbook/OrderBook.java +++ b/src/main/java/io/bitsquare/trade/orderbook/OrderBook.java @@ -1,7 +1,6 @@ package io.bitsquare.trade.orderbook; import com.google.inject.Inject; -import io.bitsquare.bank.BankAccount; import io.bitsquare.bank.BankAccountType; import io.bitsquare.gui.trade.orderbook.OrderBookListItem; import io.bitsquare.gui.util.Converter; @@ -30,7 +29,7 @@ public class OrderBook orderBookListItems = FXCollections.observableArrayList(); for (int i = 0; i < 100; i++) { - orderBookListItems.add(getOfferListVO()); + orderBookListItems.add(getOrderBookListItem()); } } @@ -61,10 +60,9 @@ public class OrderBook return result; } - private OrderBookListItem getOfferListVO() + private OrderBookListItem getOrderBookListItem() { - Offer i = getOffer(); - return new OrderBookListItem(i); + return new OrderBookListItem(getOffer()); } public ArrayList getCurrencies() @@ -94,20 +92,17 @@ public class OrderBook private Offer getOffer() { + User offerer = new User(); + offerer.setAccountID(UUID.randomUUID().toString()); + offerer.setMessageID(UUID.randomUUID().toString()); + offerer.setOnline(Math.random() > 0.5 ? true : false); + offerer.setLanguageLocales(getLanguageLocales()); + double amount = Math.random() * 10 + 0.1; amount = Converter.convertToDouble(Formatter.formatAmount(amount)); double minAmount = Math.random() * amount; minAmount = Converter.convertToDouble(Formatter.formatAmount(minAmount)); - String country = getCountries().get(0); - BankAccountType bankAccountType = getBankTransferTypes().get(0); - BankAccount bankAccount = new BankAccount(bankAccountType); - User offerer = new User(); - offerer.setAccountID(UUID.randomUUID().toString()); - offerer.setMessageID(UUID.randomUUID().toString()); - offerer.setCountry(country); - offerer.addBankAccount(bankAccount); - Direction direction = Direction.BUY; double price = 500 + Math.random() * 50; if (Math.random() > 0.5) @@ -129,10 +124,10 @@ public class OrderBook public OfferConstraints getRandomOfferConstraints() { - OfferConstraints offerConstraints = new OfferConstraints(getCountries(), - getLanguages(), + OfferConstraints offerConstraints = new OfferConstraints(getCountryLocales(), + getLanguageLocales(), Double.valueOf(getCollaterals().get(0)), - getBankTransferTypes(), + getBankTransferTypeEnums(), getArbitrators().get(0), randomizeStrings(settings.getAllIdentityVerifications(), false).get(0)); @@ -140,22 +135,28 @@ public class OrderBook } - private List getCountries() + private List getCountryLocales() { - return randomizeStrings(settings.getAllCountries(), false); + return randomizeList(settings.getAllLocales(), false); } - private List getLanguages() + private List getLanguageLocales() { - return randomizeStrings(settings.getAllLanguages(), false); + return randomizeList(settings.getAllLocales(), false); } + private List getBankTransferTypes() { return randomizeBankAccountTypes(settings.getAllBankAccountTypes(), false); } + private List getBankTransferTypeEnums() + { + return randomizeBankAccountTypeEnums(settings.getAllBankAccountTypeEnums(), false); + } + private List getArbitrators() { return randomizeStrings(settings.getAllArbitrators(), false); @@ -166,6 +167,16 @@ public class OrderBook return randomizeStrings(settings.getAllCollaterals(), false); } + private List randomizeBankAccountTypeEnums(List list, boolean optional) + { + int e = new Random().nextInt(list.size()); + if (!optional && list.size() > 0) + e = Math.max(e, 1); + int s = (e == 0) ? 0 : new Random().nextInt(e); + list = list.subList(s, e); + return list; + } + private List randomizeBankAccountTypes(List list, boolean optional) { int e = new Random().nextInt(list.size()); @@ -186,6 +197,17 @@ public class OrderBook return list; } + private List randomizeList(List list, boolean optional) + { + int e = new Random().nextInt(list.size()); + if (!optional && list.size() > 0) + e = Math.max(e, 1); + int s = (e == 0) ? 0 : new Random().nextInt(e); + list = list.subList(s, e); + return list; + } + + private List randomizeDouble(List list, boolean optional) { int e = new Random().nextInt(list.size()); diff --git a/src/main/java/io/bitsquare/trade/orderbook/OrderBookFilter.java b/src/main/java/io/bitsquare/trade/orderbook/OrderBookFilter.java index c9851f2501..54dd662831 100644 --- a/src/main/java/io/bitsquare/trade/orderbook/OrderBookFilter.java +++ b/src/main/java/io/bitsquare/trade/orderbook/OrderBookFilter.java @@ -2,10 +2,10 @@ package io.bitsquare.trade.orderbook; import io.bitsquare.trade.Direction; import io.bitsquare.trade.OfferConstraints; -import javafx.beans.property.SimpleStringProperty; -import javafx.beans.property.StringProperty; +import javafx.beans.property.SimpleBooleanProperty; import java.util.Currency; +import java.util.Locale; public class OrderBookFilter { @@ -13,22 +13,65 @@ public class OrderBookFilter private double amount; private Direction direction; private Currency currency; - private final StringProperty currencyProperty = new SimpleStringProperty(); + private Locale countryLocale; + private Locale languageLocale; private OfferConstraints offerConstraints; + + public SimpleBooleanProperty changedPropertyProperty() + { + return changedProperty; + } + + private final SimpleBooleanProperty changedProperty = new SimpleBooleanProperty(); + + // setters + public void setCurrency(Currency currency) + { + this.currency = currency; + triggerChange(); + } + public void setAmount(double amount) { this.amount = amount; + triggerChange(); } - public double getAmount() + public void setPrice(double price) { - return amount; + this.price = price; + triggerChange(); } public void setDirection(Direction direction) { this.direction = direction; + triggerChange(); + } + + public void setOfferConstraints(OfferConstraints offerConstraints) + { + this.offerConstraints = offerConstraints; + triggerChange(); + } + + public void setCountryLocale(Locale countryLocale) + { + this.countryLocale = countryLocale; + triggerChange(); + } + + public void setLanguageLocale(Locale languageLocale) + { + this.languageLocale = languageLocale; + triggerChange(); + } + + // getters + public double getAmount() + { + return amount; } public Direction getDirection() @@ -41,34 +84,33 @@ public class OrderBookFilter return price; } - public void setPrice(double price) - { - this.price = price; - } - public Currency getCurrency() { return currency; } - public StringProperty getCurrencyProperty() - { - return currencyProperty; - } - - public void setCurrency(Currency currency) - { - this.currency = currency; - currencyProperty.set(currency.getCurrencyCode()); - } - public OfferConstraints getOfferConstraints() { return offerConstraints; } - public void setOfferConstraints(OfferConstraints offerConstraints) + public Locale getCountryLocale() { - this.offerConstraints = offerConstraints; + return countryLocale; + } + + public Locale getLanguageLocale() + { + return languageLocale; + } + + public SimpleBooleanProperty getChangedProperty() + { + return changedProperty; + } + + private void triggerChange() + { + changedProperty.set(!changedProperty.get()); } } diff --git a/src/main/java/io/bitsquare/user/User.java b/src/main/java/io/bitsquare/user/User.java index 703b029e4b..4d71c5bc2c 100644 --- a/src/main/java/io/bitsquare/user/User.java +++ b/src/main/java/io/bitsquare/user/User.java @@ -3,9 +3,10 @@ package io.bitsquare.user; import io.bitsquare.bank.BankAccount; import java.io.Serializable; -import java.util.HashMap; +import java.util.ArrayList; import java.util.Iterator; -import java.util.Map; +import java.util.List; +import java.util.Locale; public class User implements Serializable { @@ -14,13 +15,14 @@ public class User implements Serializable private String accountID; private String messageID; private boolean online; + private List bankAccounts = new ArrayList<>(); private BankAccount currentBankAccount = null; - - private Map bankAccounts = new HashMap<>(); - private String country; + private List languageLocales = new ArrayList<>(); + private Locale currentLanguageLocale = null; public User() { + addLanguageLocales(Locale.getDefault()); } public void updateFromStorage(User savedUser) @@ -32,17 +34,18 @@ public class User implements Serializable online = savedUser.isOnline(); currentBankAccount = savedUser.getCurrentBankAccount(); bankAccounts = savedUser.getBankAccounts(); - country = savedUser.getCountry(); + languageLocales = savedUser.getLanguageLocales(); + currentLanguageLocale = savedUser.getCurrentLanguageLocale(); } } public String getStringifiedBankAccounts() { String bankAccountUIDs = ""; - for (Iterator> iterator = getBankAccounts().entrySet().iterator(); iterator.hasNext(); ) + for (Iterator iterator = getBankAccounts().iterator(); iterator.hasNext(); ) { - Map.Entry entry = iterator.next(); - bankAccountUIDs += entry.getValue().getStringifiedBankAccount(); + BankAccount bankAccount = iterator.next(); + bankAccountUIDs += bankAccount.getStringifiedBankAccount(); if (iterator.hasNext()) bankAccountUIDs += ", "; @@ -50,52 +53,71 @@ public class User implements Serializable return bankAccountUIDs; } + public void addLanguageLocales(Locale locale) + { + languageLocales.add(locale); + currentLanguageLocale = locale; + } + public void addBankAccount(BankAccount bankAccount) { - if (currentBankAccount == null) - currentBankAccount = bankAccount; - bankAccounts.put(bankAccount.getUid(), bankAccount); - } - - public Map getBankAccounts() - { - return bankAccounts; - } - - public BankAccount getBankAccountByUID(String uid) - { - return bankAccounts.get(uid); - } - - public String getMessageID() - { - return messageID; + bankAccounts.add(bankAccount); + currentBankAccount = bankAccount; } + // setter public void setMessageID(String messageID) { this.messageID = messageID; } - public String getAccountID() - { - return accountID; - } - public void setAccountID(String accountID) { this.accountID = accountID; } - public void setCountry(String country) + + public void setBankAccounts(List bankAccounts) { - this.country = country; + this.bankAccounts = bankAccounts; } - public String getCountry() + public void setCurrentBankAccount(BankAccount currentBankAccount) { - return country; + this.currentBankAccount = currentBankAccount; + } + + public void setLanguageLocales(List languageLocales) + { + this.languageLocales = languageLocales; + } + + public void setCurrentLanguageLocale(Locale currentLanguageLocale) + { + this.currentLanguageLocale = currentLanguageLocale; + } + + public void setOnline(boolean online) + { + this.online = online; + } + + + // getter + public String getMessageID() + { + return messageID; + } + + public String getAccountID() + { + return accountID; + } + + public List getBankAccounts() + { + return bankAccounts; } public BankAccount getCurrentBankAccount() @@ -103,6 +125,16 @@ public class User implements Serializable return currentBankAccount; } + public List getLanguageLocales() + { + return languageLocales; + } + + public Locale getCurrentLanguageLocale() + { + return currentLanguageLocale; + } + public boolean isOnline() { return online; diff --git a/src/main/resources/i18n/displayStrings_de_DE.properties b/src/main/resources/i18n/displayStrings_de_DE.properties index 89b8f2dc80..829f02532b 100644 --- a/src/main/resources/i18n/displayStrings_de_DE.properties +++ b/src/main/resources/i18n/displayStrings_de_DE.properties @@ -1 +1,8 @@ -currency=Währung \ No newline at end of file +currency=Währung +SEPA=Sepa +WIRE=Wire +INTERNATIONAL=International +OK_PAY=OK Pay +NET_TELLER=Netteller +PERFECT_MONEY=Perfect Money +OTHER=Other \ No newline at end of file diff --git a/src/main/resources/i18n/displayStrings_en_US.properties b/src/main/resources/i18n/displayStrings_en_US.properties index cf3b41cbbd..1c95fbc998 100644 --- a/src/main/resources/i18n/displayStrings_en_US.properties +++ b/src/main/resources/i18n/displayStrings_en_US.properties @@ -1 +1,8 @@ -currency=Currency \ No newline at end of file +currency=Currency +SEPA=Sepa +WIRE=Wire +INTERNATIONAL=International +OK_PAY=OK Pay +NET_TELLER=Netteller +PERFECT_MONEY=Perfect Money +OTHER=Other \ No newline at end of file diff --git a/src/main/resources/images/countries/ad.png b/src/main/resources/images/countries/ad.png new file mode 100755 index 0000000000..625ca84f9e Binary files /dev/null and b/src/main/resources/images/countries/ad.png differ diff --git a/src/main/resources/images/countries/ae.png b/src/main/resources/images/countries/ae.png new file mode 100755 index 0000000000..ef3a1ecfcc Binary files /dev/null and b/src/main/resources/images/countries/ae.png differ diff --git a/src/main/resources/images/countries/af.png b/src/main/resources/images/countries/af.png new file mode 100755 index 0000000000..a4742e299f Binary files /dev/null and b/src/main/resources/images/countries/af.png differ diff --git a/src/main/resources/images/countries/ag.png b/src/main/resources/images/countries/ag.png new file mode 100755 index 0000000000..556d5504dc Binary files /dev/null and b/src/main/resources/images/countries/ag.png differ diff --git a/src/main/resources/images/countries/ai.png b/src/main/resources/images/countries/ai.png new file mode 100755 index 0000000000..74ed29d926 Binary files /dev/null and b/src/main/resources/images/countries/ai.png differ diff --git a/src/main/resources/images/countries/al.png b/src/main/resources/images/countries/al.png new file mode 100755 index 0000000000..92354cb6e2 Binary files /dev/null and b/src/main/resources/images/countries/al.png differ diff --git a/src/main/resources/images/countries/am.png b/src/main/resources/images/countries/am.png new file mode 100755 index 0000000000..344a2a86c4 Binary files /dev/null and b/src/main/resources/images/countries/am.png differ diff --git a/src/main/resources/images/countries/an.png b/src/main/resources/images/countries/an.png new file mode 100755 index 0000000000..633e4b89fd Binary files /dev/null and b/src/main/resources/images/countries/an.png differ diff --git a/src/main/resources/images/countries/ao.png b/src/main/resources/images/countries/ao.png new file mode 100644 index 0000000000..bcbd1d6d40 Binary files /dev/null and b/src/main/resources/images/countries/ao.png differ diff --git a/src/main/resources/images/countries/ar.png b/src/main/resources/images/countries/ar.png new file mode 100755 index 0000000000..e5ef8f1fcd Binary files /dev/null and b/src/main/resources/images/countries/ar.png differ diff --git a/src/main/resources/images/countries/as.png b/src/main/resources/images/countries/as.png new file mode 100755 index 0000000000..32f30e4ce4 Binary files /dev/null and b/src/main/resources/images/countries/as.png differ diff --git a/src/main/resources/images/countries/at.png b/src/main/resources/images/countries/at.png new file mode 100755 index 0000000000..0f15f34f28 Binary files /dev/null and b/src/main/resources/images/countries/at.png differ diff --git a/src/main/resources/images/countries/au.png b/src/main/resources/images/countries/au.png new file mode 100755 index 0000000000..a01389a745 Binary files /dev/null and b/src/main/resources/images/countries/au.png differ diff --git a/src/main/resources/images/countries/aw.png b/src/main/resources/images/countries/aw.png new file mode 100755 index 0000000000..a3579c2d62 Binary files /dev/null and b/src/main/resources/images/countries/aw.png differ diff --git a/src/main/resources/images/countries/ax.png b/src/main/resources/images/countries/ax.png new file mode 100755 index 0000000000..1eea80a7b7 Binary files /dev/null and b/src/main/resources/images/countries/ax.png differ diff --git a/src/main/resources/images/countries/az.png b/src/main/resources/images/countries/az.png new file mode 100755 index 0000000000..4ee9fe5ced Binary files /dev/null and b/src/main/resources/images/countries/az.png differ diff --git a/src/main/resources/images/countries/ba.png b/src/main/resources/images/countries/ba.png new file mode 100755 index 0000000000..c77499249c Binary files /dev/null and b/src/main/resources/images/countries/ba.png differ diff --git a/src/main/resources/images/countries/bb.png b/src/main/resources/images/countries/bb.png new file mode 100755 index 0000000000..0df19c71d2 Binary files /dev/null and b/src/main/resources/images/countries/bb.png differ diff --git a/src/main/resources/images/countries/bd.png b/src/main/resources/images/countries/bd.png new file mode 100755 index 0000000000..076a8bf87c Binary files /dev/null and b/src/main/resources/images/countries/bd.png differ diff --git a/src/main/resources/images/countries/be.png b/src/main/resources/images/countries/be.png new file mode 100755 index 0000000000..d86ebc800a Binary files /dev/null and b/src/main/resources/images/countries/be.png differ diff --git a/src/main/resources/images/countries/bf.png b/src/main/resources/images/countries/bf.png new file mode 100755 index 0000000000..ab5ce8fe12 Binary files /dev/null and b/src/main/resources/images/countries/bf.png differ diff --git a/src/main/resources/images/countries/bg.png b/src/main/resources/images/countries/bg.png new file mode 100755 index 0000000000..0469f0607d Binary files /dev/null and b/src/main/resources/images/countries/bg.png differ diff --git a/src/main/resources/images/countries/bh.png b/src/main/resources/images/countries/bh.png new file mode 100755 index 0000000000..ea8ce68761 Binary files /dev/null and b/src/main/resources/images/countries/bh.png differ diff --git a/src/main/resources/images/countries/bi.png b/src/main/resources/images/countries/bi.png new file mode 100755 index 0000000000..5cc2e30cfc Binary files /dev/null and b/src/main/resources/images/countries/bi.png differ diff --git a/src/main/resources/images/countries/bj.png b/src/main/resources/images/countries/bj.png new file mode 100755 index 0000000000..1cc8b458a4 Binary files /dev/null and b/src/main/resources/images/countries/bj.png differ diff --git a/src/main/resources/images/countries/bm.png b/src/main/resources/images/countries/bm.png new file mode 100755 index 0000000000..c0c7aead8d Binary files /dev/null and b/src/main/resources/images/countries/bm.png differ diff --git a/src/main/resources/images/countries/bn.png b/src/main/resources/images/countries/bn.png new file mode 100755 index 0000000000..8fb09849e9 Binary files /dev/null and b/src/main/resources/images/countries/bn.png differ diff --git a/src/main/resources/images/countries/bo.png b/src/main/resources/images/countries/bo.png new file mode 100755 index 0000000000..ce7ba522aa Binary files /dev/null and b/src/main/resources/images/countries/bo.png differ diff --git a/src/main/resources/images/countries/br.png b/src/main/resources/images/countries/br.png new file mode 100755 index 0000000000..9b1a5538b2 Binary files /dev/null and b/src/main/resources/images/countries/br.png differ diff --git a/src/main/resources/images/countries/bs.png b/src/main/resources/images/countries/bs.png new file mode 100755 index 0000000000..639fa6cfa9 Binary files /dev/null and b/src/main/resources/images/countries/bs.png differ diff --git a/src/main/resources/images/countries/bt.png b/src/main/resources/images/countries/bt.png new file mode 100755 index 0000000000..1d512dfff4 Binary files /dev/null and b/src/main/resources/images/countries/bt.png differ diff --git a/src/main/resources/images/countries/bv.png b/src/main/resources/images/countries/bv.png new file mode 100755 index 0000000000..160b6b5b79 Binary files /dev/null and b/src/main/resources/images/countries/bv.png differ diff --git a/src/main/resources/images/countries/bw.png b/src/main/resources/images/countries/bw.png new file mode 100755 index 0000000000..fcb1039415 Binary files /dev/null and b/src/main/resources/images/countries/bw.png differ diff --git a/src/main/resources/images/countries/by.png b/src/main/resources/images/countries/by.png new file mode 100755 index 0000000000..504774ec10 Binary files /dev/null and b/src/main/resources/images/countries/by.png differ diff --git a/src/main/resources/images/countries/bz.png b/src/main/resources/images/countries/bz.png new file mode 100755 index 0000000000..be63ee1c62 Binary files /dev/null and b/src/main/resources/images/countries/bz.png differ diff --git a/src/main/resources/images/countries/ca.png b/src/main/resources/images/countries/ca.png new file mode 100755 index 0000000000..1f204193ae Binary files /dev/null and b/src/main/resources/images/countries/ca.png differ diff --git a/src/main/resources/images/countries/catalonia.png b/src/main/resources/images/countries/catalonia.png new file mode 100644 index 0000000000..5041e308e3 Binary files /dev/null and b/src/main/resources/images/countries/catalonia.png differ diff --git a/src/main/resources/images/countries/cc.png b/src/main/resources/images/countries/cc.png new file mode 100755 index 0000000000..aed3d3b4e4 Binary files /dev/null and b/src/main/resources/images/countries/cc.png differ diff --git a/src/main/resources/images/countries/cd.png b/src/main/resources/images/countries/cd.png new file mode 100644 index 0000000000..5e48942488 Binary files /dev/null and b/src/main/resources/images/countries/cd.png differ diff --git a/src/main/resources/images/countries/cf.png b/src/main/resources/images/countries/cf.png new file mode 100755 index 0000000000..da687bdce9 Binary files /dev/null and b/src/main/resources/images/countries/cf.png differ diff --git a/src/main/resources/images/countries/cg.png b/src/main/resources/images/countries/cg.png new file mode 100755 index 0000000000..a859792ef3 Binary files /dev/null and b/src/main/resources/images/countries/cg.png differ diff --git a/src/main/resources/images/countries/ch.png b/src/main/resources/images/countries/ch.png new file mode 100755 index 0000000000..242ec01aaf Binary files /dev/null and b/src/main/resources/images/countries/ch.png differ diff --git a/src/main/resources/images/countries/ci.png b/src/main/resources/images/countries/ci.png new file mode 100755 index 0000000000..3f2c62eb4d Binary files /dev/null and b/src/main/resources/images/countries/ci.png differ diff --git a/src/main/resources/images/countries/ck.png b/src/main/resources/images/countries/ck.png new file mode 100755 index 0000000000..746d3d6f75 Binary files /dev/null and b/src/main/resources/images/countries/ck.png differ diff --git a/src/main/resources/images/countries/cl.png b/src/main/resources/images/countries/cl.png new file mode 100755 index 0000000000..29c6d61bd4 Binary files /dev/null and b/src/main/resources/images/countries/cl.png differ diff --git a/src/main/resources/images/countries/cm.png b/src/main/resources/images/countries/cm.png new file mode 100755 index 0000000000..f65c5bd5a7 Binary files /dev/null and b/src/main/resources/images/countries/cm.png differ diff --git a/src/main/resources/images/countries/cn.png b/src/main/resources/images/countries/cn.png new file mode 100755 index 0000000000..8914414621 Binary files /dev/null and b/src/main/resources/images/countries/cn.png differ diff --git a/src/main/resources/images/countries/co.png b/src/main/resources/images/countries/co.png new file mode 100755 index 0000000000..a118ff4a14 Binary files /dev/null and b/src/main/resources/images/countries/co.png differ diff --git a/src/main/resources/images/countries/cr.png b/src/main/resources/images/countries/cr.png new file mode 100755 index 0000000000..c7a3731794 Binary files /dev/null and b/src/main/resources/images/countries/cr.png differ diff --git a/src/main/resources/images/countries/cs.png b/src/main/resources/images/countries/cs.png new file mode 100755 index 0000000000..8254790ca7 Binary files /dev/null and b/src/main/resources/images/countries/cs.png differ diff --git a/src/main/resources/images/countries/cu.png b/src/main/resources/images/countries/cu.png new file mode 100755 index 0000000000..083f1d611c Binary files /dev/null and b/src/main/resources/images/countries/cu.png differ diff --git a/src/main/resources/images/countries/cv.png b/src/main/resources/images/countries/cv.png new file mode 100755 index 0000000000..a63f7eaf63 Binary files /dev/null and b/src/main/resources/images/countries/cv.png differ diff --git a/src/main/resources/images/countries/cx.png b/src/main/resources/images/countries/cx.png new file mode 100755 index 0000000000..48e31adbf4 Binary files /dev/null and b/src/main/resources/images/countries/cx.png differ diff --git a/src/main/resources/images/countries/cy.png b/src/main/resources/images/countries/cy.png new file mode 100755 index 0000000000..5b1ad6c078 Binary files /dev/null and b/src/main/resources/images/countries/cy.png differ diff --git a/src/main/resources/images/countries/cz.png b/src/main/resources/images/countries/cz.png new file mode 100755 index 0000000000..c8403dd21f Binary files /dev/null and b/src/main/resources/images/countries/cz.png differ diff --git a/src/main/resources/images/countries/de.png b/src/main/resources/images/countries/de.png new file mode 100755 index 0000000000..ac4a977362 Binary files /dev/null and b/src/main/resources/images/countries/de.png differ diff --git a/src/main/resources/images/countries/dj.png b/src/main/resources/images/countries/dj.png new file mode 100755 index 0000000000..582af364f8 Binary files /dev/null and b/src/main/resources/images/countries/dj.png differ diff --git a/src/main/resources/images/countries/dk.png b/src/main/resources/images/countries/dk.png new file mode 100755 index 0000000000..e2993d3c59 Binary files /dev/null and b/src/main/resources/images/countries/dk.png differ diff --git a/src/main/resources/images/countries/dm.png b/src/main/resources/images/countries/dm.png new file mode 100755 index 0000000000..5fbffcba3c Binary files /dev/null and b/src/main/resources/images/countries/dm.png differ diff --git a/src/main/resources/images/countries/do.png b/src/main/resources/images/countries/do.png new file mode 100755 index 0000000000..5a04932d87 Binary files /dev/null and b/src/main/resources/images/countries/do.png differ diff --git a/src/main/resources/images/countries/dz.png b/src/main/resources/images/countries/dz.png new file mode 100755 index 0000000000..335c2391d3 Binary files /dev/null and b/src/main/resources/images/countries/dz.png differ diff --git a/src/main/resources/images/countries/ec.png b/src/main/resources/images/countries/ec.png new file mode 100755 index 0000000000..0caa0b1e78 Binary files /dev/null and b/src/main/resources/images/countries/ec.png differ diff --git a/src/main/resources/images/countries/ee.png b/src/main/resources/images/countries/ee.png new file mode 100755 index 0000000000..0c82efb7dd Binary files /dev/null and b/src/main/resources/images/countries/ee.png differ diff --git a/src/main/resources/images/countries/eg.png b/src/main/resources/images/countries/eg.png new file mode 100755 index 0000000000..8a3f7a10b5 Binary files /dev/null and b/src/main/resources/images/countries/eg.png differ diff --git a/src/main/resources/images/countries/eh.png b/src/main/resources/images/countries/eh.png new file mode 100755 index 0000000000..90a1195b47 Binary files /dev/null and b/src/main/resources/images/countries/eh.png differ diff --git a/src/main/resources/images/countries/england.png b/src/main/resources/images/countries/england.png new file mode 100755 index 0000000000..3a7311d561 Binary files /dev/null and b/src/main/resources/images/countries/england.png differ diff --git a/src/main/resources/images/countries/er.png b/src/main/resources/images/countries/er.png new file mode 100755 index 0000000000..13065ae99c Binary files /dev/null and b/src/main/resources/images/countries/er.png differ diff --git a/src/main/resources/images/countries/es.png b/src/main/resources/images/countries/es.png new file mode 100755 index 0000000000..c2de2d7111 Binary files /dev/null and b/src/main/resources/images/countries/es.png differ diff --git a/src/main/resources/images/countries/et.png b/src/main/resources/images/countries/et.png new file mode 100755 index 0000000000..2e893fa056 Binary files /dev/null and b/src/main/resources/images/countries/et.png differ diff --git a/src/main/resources/images/countries/eu.png b/src/main/resources/images/countries/eu.png new file mode 100644 index 0000000000..d6d8711580 Binary files /dev/null and b/src/main/resources/images/countries/eu.png differ diff --git a/src/main/resources/images/countries/fam.png b/src/main/resources/images/countries/fam.png new file mode 100755 index 0000000000..cf50c759eb Binary files /dev/null and b/src/main/resources/images/countries/fam.png differ diff --git a/src/main/resources/images/countries/fi.png b/src/main/resources/images/countries/fi.png new file mode 100755 index 0000000000..14ec091b80 Binary files /dev/null and b/src/main/resources/images/countries/fi.png differ diff --git a/src/main/resources/images/countries/fj.png b/src/main/resources/images/countries/fj.png new file mode 100755 index 0000000000..cee998892e Binary files /dev/null and b/src/main/resources/images/countries/fj.png differ diff --git a/src/main/resources/images/countries/fk.png b/src/main/resources/images/countries/fk.png new file mode 100755 index 0000000000..ceaeb27dec Binary files /dev/null and b/src/main/resources/images/countries/fk.png differ diff --git a/src/main/resources/images/countries/fm.png b/src/main/resources/images/countries/fm.png new file mode 100755 index 0000000000..066bb24738 Binary files /dev/null and b/src/main/resources/images/countries/fm.png differ diff --git a/src/main/resources/images/countries/fo.png b/src/main/resources/images/countries/fo.png new file mode 100755 index 0000000000..cbceb809eb Binary files /dev/null and b/src/main/resources/images/countries/fo.png differ diff --git a/src/main/resources/images/countries/fr.png b/src/main/resources/images/countries/fr.png new file mode 100755 index 0000000000..8332c4ec23 Binary files /dev/null and b/src/main/resources/images/countries/fr.png differ diff --git a/src/main/resources/images/countries/ga.png b/src/main/resources/images/countries/ga.png new file mode 100755 index 0000000000..0e0d434363 Binary files /dev/null and b/src/main/resources/images/countries/ga.png differ diff --git a/src/main/resources/images/countries/gb.png b/src/main/resources/images/countries/gb.png new file mode 100644 index 0000000000..ff701e19f6 Binary files /dev/null and b/src/main/resources/images/countries/gb.png differ diff --git a/src/main/resources/images/countries/gd.png b/src/main/resources/images/countries/gd.png new file mode 100755 index 0000000000..9ab57f5489 Binary files /dev/null and b/src/main/resources/images/countries/gd.png differ diff --git a/src/main/resources/images/countries/ge.png b/src/main/resources/images/countries/ge.png new file mode 100755 index 0000000000..728d97078d Binary files /dev/null and b/src/main/resources/images/countries/ge.png differ diff --git a/src/main/resources/images/countries/gf.png b/src/main/resources/images/countries/gf.png new file mode 100755 index 0000000000..8332c4ec23 Binary files /dev/null and b/src/main/resources/images/countries/gf.png differ diff --git a/src/main/resources/images/countries/gh.png b/src/main/resources/images/countries/gh.png new file mode 100755 index 0000000000..4e2f896591 Binary files /dev/null and b/src/main/resources/images/countries/gh.png differ diff --git a/src/main/resources/images/countries/gi.png b/src/main/resources/images/countries/gi.png new file mode 100755 index 0000000000..e76797f62f Binary files /dev/null and b/src/main/resources/images/countries/gi.png differ diff --git a/src/main/resources/images/countries/gl.png b/src/main/resources/images/countries/gl.png new file mode 100755 index 0000000000..ef12a73bf9 Binary files /dev/null and b/src/main/resources/images/countries/gl.png differ diff --git a/src/main/resources/images/countries/gm.png b/src/main/resources/images/countries/gm.png new file mode 100755 index 0000000000..0720b667af Binary files /dev/null and b/src/main/resources/images/countries/gm.png differ diff --git a/src/main/resources/images/countries/gn.png b/src/main/resources/images/countries/gn.png new file mode 100755 index 0000000000..ea660b01fa Binary files /dev/null and b/src/main/resources/images/countries/gn.png differ diff --git a/src/main/resources/images/countries/gp.png b/src/main/resources/images/countries/gp.png new file mode 100755 index 0000000000..dbb086d001 Binary files /dev/null and b/src/main/resources/images/countries/gp.png differ diff --git a/src/main/resources/images/countries/gq.png b/src/main/resources/images/countries/gq.png new file mode 100755 index 0000000000..ebe20a28de Binary files /dev/null and b/src/main/resources/images/countries/gq.png differ diff --git a/src/main/resources/images/countries/gr.png b/src/main/resources/images/countries/gr.png new file mode 100755 index 0000000000..8651ade7cb Binary files /dev/null and b/src/main/resources/images/countries/gr.png differ diff --git a/src/main/resources/images/countries/gs.png b/src/main/resources/images/countries/gs.png new file mode 100755 index 0000000000..7ef0bf598d Binary files /dev/null and b/src/main/resources/images/countries/gs.png differ diff --git a/src/main/resources/images/countries/gt.png b/src/main/resources/images/countries/gt.png new file mode 100755 index 0000000000..c43a70d364 Binary files /dev/null and b/src/main/resources/images/countries/gt.png differ diff --git a/src/main/resources/images/countries/gu.png b/src/main/resources/images/countries/gu.png new file mode 100755 index 0000000000..92f37c0533 Binary files /dev/null and b/src/main/resources/images/countries/gu.png differ diff --git a/src/main/resources/images/countries/gw.png b/src/main/resources/images/countries/gw.png new file mode 100755 index 0000000000..b37bcf06bf Binary files /dev/null and b/src/main/resources/images/countries/gw.png differ diff --git a/src/main/resources/images/countries/gy.png b/src/main/resources/images/countries/gy.png new file mode 100755 index 0000000000..22cbe2f591 Binary files /dev/null and b/src/main/resources/images/countries/gy.png differ diff --git a/src/main/resources/images/countries/hk.png b/src/main/resources/images/countries/hk.png new file mode 100755 index 0000000000..d5c380ca9d Binary files /dev/null and b/src/main/resources/images/countries/hk.png differ diff --git a/src/main/resources/images/countries/hm.png b/src/main/resources/images/countries/hm.png new file mode 100755 index 0000000000..a01389a745 Binary files /dev/null and b/src/main/resources/images/countries/hm.png differ diff --git a/src/main/resources/images/countries/hn.png b/src/main/resources/images/countries/hn.png new file mode 100755 index 0000000000..96f838859f Binary files /dev/null and b/src/main/resources/images/countries/hn.png differ diff --git a/src/main/resources/images/countries/hr.png b/src/main/resources/images/countries/hr.png new file mode 100755 index 0000000000..696b515460 Binary files /dev/null and b/src/main/resources/images/countries/hr.png differ diff --git a/src/main/resources/images/countries/ht.png b/src/main/resources/images/countries/ht.png new file mode 100755 index 0000000000..416052af77 Binary files /dev/null and b/src/main/resources/images/countries/ht.png differ diff --git a/src/main/resources/images/countries/hu.png b/src/main/resources/images/countries/hu.png new file mode 100755 index 0000000000..7baafe44dd Binary files /dev/null and b/src/main/resources/images/countries/hu.png differ diff --git a/src/main/resources/images/countries/id.png b/src/main/resources/images/countries/id.png new file mode 100755 index 0000000000..c6bc0fafac Binary files /dev/null and b/src/main/resources/images/countries/id.png differ diff --git a/src/main/resources/images/countries/ie.png b/src/main/resources/images/countries/ie.png new file mode 100755 index 0000000000..26baa31e18 Binary files /dev/null and b/src/main/resources/images/countries/ie.png differ diff --git a/src/main/resources/images/countries/il.png b/src/main/resources/images/countries/il.png new file mode 100755 index 0000000000..2ca772d0b7 Binary files /dev/null and b/src/main/resources/images/countries/il.png differ diff --git a/src/main/resources/images/countries/in.png b/src/main/resources/images/countries/in.png new file mode 100755 index 0000000000..e4d7e81a98 Binary files /dev/null and b/src/main/resources/images/countries/in.png differ diff --git a/src/main/resources/images/countries/io.png b/src/main/resources/images/countries/io.png new file mode 100755 index 0000000000..3e74b6a316 Binary files /dev/null and b/src/main/resources/images/countries/io.png differ diff --git a/src/main/resources/images/countries/iq.png b/src/main/resources/images/countries/iq.png new file mode 100755 index 0000000000..878a351403 Binary files /dev/null and b/src/main/resources/images/countries/iq.png differ diff --git a/src/main/resources/images/countries/ir.png b/src/main/resources/images/countries/ir.png new file mode 100755 index 0000000000..c5fd136aee Binary files /dev/null and b/src/main/resources/images/countries/ir.png differ diff --git a/src/main/resources/images/countries/is.png b/src/main/resources/images/countries/is.png new file mode 100755 index 0000000000..b8f6d0f066 Binary files /dev/null and b/src/main/resources/images/countries/is.png differ diff --git a/src/main/resources/images/countries/it.png b/src/main/resources/images/countries/it.png new file mode 100755 index 0000000000..89692f74f0 Binary files /dev/null and b/src/main/resources/images/countries/it.png differ diff --git a/src/main/resources/images/countries/jm.png b/src/main/resources/images/countries/jm.png new file mode 100755 index 0000000000..7be119e03d Binary files /dev/null and b/src/main/resources/images/countries/jm.png differ diff --git a/src/main/resources/images/countries/jo.png b/src/main/resources/images/countries/jo.png new file mode 100755 index 0000000000..11bd4972b6 Binary files /dev/null and b/src/main/resources/images/countries/jo.png differ diff --git a/src/main/resources/images/countries/jp.png b/src/main/resources/images/countries/jp.png new file mode 100755 index 0000000000..325fbad3ff Binary files /dev/null and b/src/main/resources/images/countries/jp.png differ diff --git a/src/main/resources/images/countries/ke.png b/src/main/resources/images/countries/ke.png new file mode 100755 index 0000000000..51879adf17 Binary files /dev/null and b/src/main/resources/images/countries/ke.png differ diff --git a/src/main/resources/images/countries/kg.png b/src/main/resources/images/countries/kg.png new file mode 100755 index 0000000000..0a818f67ea Binary files /dev/null and b/src/main/resources/images/countries/kg.png differ diff --git a/src/main/resources/images/countries/kh.png b/src/main/resources/images/countries/kh.png new file mode 100755 index 0000000000..30f6bb1b9b Binary files /dev/null and b/src/main/resources/images/countries/kh.png differ diff --git a/src/main/resources/images/countries/ki.png b/src/main/resources/images/countries/ki.png new file mode 100755 index 0000000000..2dcce4b33f Binary files /dev/null and b/src/main/resources/images/countries/ki.png differ diff --git a/src/main/resources/images/countries/km.png b/src/main/resources/images/countries/km.png new file mode 100755 index 0000000000..812b2f56c5 Binary files /dev/null and b/src/main/resources/images/countries/km.png differ diff --git a/src/main/resources/images/countries/kn.png b/src/main/resources/images/countries/kn.png new file mode 100755 index 0000000000..febd5b486f Binary files /dev/null and b/src/main/resources/images/countries/kn.png differ diff --git a/src/main/resources/images/countries/kp.png b/src/main/resources/images/countries/kp.png new file mode 100755 index 0000000000..d3d509aa87 Binary files /dev/null and b/src/main/resources/images/countries/kp.png differ diff --git a/src/main/resources/images/countries/kr.png b/src/main/resources/images/countries/kr.png new file mode 100755 index 0000000000..9c0a78eb94 Binary files /dev/null and b/src/main/resources/images/countries/kr.png differ diff --git a/src/main/resources/images/countries/kw.png b/src/main/resources/images/countries/kw.png new file mode 100755 index 0000000000..96546da328 Binary files /dev/null and b/src/main/resources/images/countries/kw.png differ diff --git a/src/main/resources/images/countries/ky.png b/src/main/resources/images/countries/ky.png new file mode 100755 index 0000000000..15c5f8e477 Binary files /dev/null and b/src/main/resources/images/countries/ky.png differ diff --git a/src/main/resources/images/countries/kz.png b/src/main/resources/images/countries/kz.png new file mode 100755 index 0000000000..45a8c88742 Binary files /dev/null and b/src/main/resources/images/countries/kz.png differ diff --git a/src/main/resources/images/countries/la.png b/src/main/resources/images/countries/la.png new file mode 100755 index 0000000000..e28acd018a Binary files /dev/null and b/src/main/resources/images/countries/la.png differ diff --git a/src/main/resources/images/countries/lb.png b/src/main/resources/images/countries/lb.png new file mode 100755 index 0000000000..d0d452bf86 Binary files /dev/null and b/src/main/resources/images/countries/lb.png differ diff --git a/src/main/resources/images/countries/lc.png b/src/main/resources/images/countries/lc.png new file mode 100644 index 0000000000..a47d065541 Binary files /dev/null and b/src/main/resources/images/countries/lc.png differ diff --git a/src/main/resources/images/countries/li.png b/src/main/resources/images/countries/li.png new file mode 100755 index 0000000000..6469909c01 Binary files /dev/null and b/src/main/resources/images/countries/li.png differ diff --git a/src/main/resources/images/countries/lk.png b/src/main/resources/images/countries/lk.png new file mode 100755 index 0000000000..088aad6db9 Binary files /dev/null and b/src/main/resources/images/countries/lk.png differ diff --git a/src/main/resources/images/countries/lr.png b/src/main/resources/images/countries/lr.png new file mode 100755 index 0000000000..89a5bc7e70 Binary files /dev/null and b/src/main/resources/images/countries/lr.png differ diff --git a/src/main/resources/images/countries/ls.png b/src/main/resources/images/countries/ls.png new file mode 100755 index 0000000000..33fdef101f Binary files /dev/null and b/src/main/resources/images/countries/ls.png differ diff --git a/src/main/resources/images/countries/lt.png b/src/main/resources/images/countries/lt.png new file mode 100755 index 0000000000..c8ef0da091 Binary files /dev/null and b/src/main/resources/images/countries/lt.png differ diff --git a/src/main/resources/images/countries/lu.png b/src/main/resources/images/countries/lu.png new file mode 100755 index 0000000000..4cabba98ae Binary files /dev/null and b/src/main/resources/images/countries/lu.png differ diff --git a/src/main/resources/images/countries/lv.png b/src/main/resources/images/countries/lv.png new file mode 100755 index 0000000000..49b6998108 Binary files /dev/null and b/src/main/resources/images/countries/lv.png differ diff --git a/src/main/resources/images/countries/ly.png b/src/main/resources/images/countries/ly.png new file mode 100755 index 0000000000..b163a9f8a0 Binary files /dev/null and b/src/main/resources/images/countries/ly.png differ diff --git a/src/main/resources/images/countries/ma.png b/src/main/resources/images/countries/ma.png new file mode 100755 index 0000000000..f386770280 Binary files /dev/null and b/src/main/resources/images/countries/ma.png differ diff --git a/src/main/resources/images/countries/mc.png b/src/main/resources/images/countries/mc.png new file mode 100755 index 0000000000..1aa830f121 Binary files /dev/null and b/src/main/resources/images/countries/mc.png differ diff --git a/src/main/resources/images/countries/md.png b/src/main/resources/images/countries/md.png new file mode 100755 index 0000000000..4e92c18904 Binary files /dev/null and b/src/main/resources/images/countries/md.png differ diff --git a/src/main/resources/images/countries/me.png b/src/main/resources/images/countries/me.png new file mode 100644 index 0000000000..ac7253558a Binary files /dev/null and b/src/main/resources/images/countries/me.png differ diff --git a/src/main/resources/images/countries/mg.png b/src/main/resources/images/countries/mg.png new file mode 100755 index 0000000000..d2715b3d0e Binary files /dev/null and b/src/main/resources/images/countries/mg.png differ diff --git a/src/main/resources/images/countries/mh.png b/src/main/resources/images/countries/mh.png new file mode 100755 index 0000000000..fb523a8c39 Binary files /dev/null and b/src/main/resources/images/countries/mh.png differ diff --git a/src/main/resources/images/countries/mk.png b/src/main/resources/images/countries/mk.png new file mode 100755 index 0000000000..db173aaff2 Binary files /dev/null and b/src/main/resources/images/countries/mk.png differ diff --git a/src/main/resources/images/countries/ml.png b/src/main/resources/images/countries/ml.png new file mode 100755 index 0000000000..2cec8ba440 Binary files /dev/null and b/src/main/resources/images/countries/ml.png differ diff --git a/src/main/resources/images/countries/mm.png b/src/main/resources/images/countries/mm.png new file mode 100755 index 0000000000..f464f67ffb Binary files /dev/null and b/src/main/resources/images/countries/mm.png differ diff --git a/src/main/resources/images/countries/mn.png b/src/main/resources/images/countries/mn.png new file mode 100755 index 0000000000..9396355db4 Binary files /dev/null and b/src/main/resources/images/countries/mn.png differ diff --git a/src/main/resources/images/countries/mo.png b/src/main/resources/images/countries/mo.png new file mode 100755 index 0000000000..deb801dda2 Binary files /dev/null and b/src/main/resources/images/countries/mo.png differ diff --git a/src/main/resources/images/countries/mp.png b/src/main/resources/images/countries/mp.png new file mode 100755 index 0000000000..298d588b14 Binary files /dev/null and b/src/main/resources/images/countries/mp.png differ diff --git a/src/main/resources/images/countries/mq.png b/src/main/resources/images/countries/mq.png new file mode 100755 index 0000000000..010143b386 Binary files /dev/null and b/src/main/resources/images/countries/mq.png differ diff --git a/src/main/resources/images/countries/mr.png b/src/main/resources/images/countries/mr.png new file mode 100755 index 0000000000..319546b100 Binary files /dev/null and b/src/main/resources/images/countries/mr.png differ diff --git a/src/main/resources/images/countries/ms.png b/src/main/resources/images/countries/ms.png new file mode 100755 index 0000000000..d4cbb433d8 Binary files /dev/null and b/src/main/resources/images/countries/ms.png differ diff --git a/src/main/resources/images/countries/mt.png b/src/main/resources/images/countries/mt.png new file mode 100755 index 0000000000..00af94871d Binary files /dev/null and b/src/main/resources/images/countries/mt.png differ diff --git a/src/main/resources/images/countries/mu.png b/src/main/resources/images/countries/mu.png new file mode 100755 index 0000000000..b7fdce1bdd Binary files /dev/null and b/src/main/resources/images/countries/mu.png differ diff --git a/src/main/resources/images/countries/mv.png b/src/main/resources/images/countries/mv.png new file mode 100755 index 0000000000..5073d9ec47 Binary files /dev/null and b/src/main/resources/images/countries/mv.png differ diff --git a/src/main/resources/images/countries/mw.png b/src/main/resources/images/countries/mw.png new file mode 100755 index 0000000000..13886e9f8b Binary files /dev/null and b/src/main/resources/images/countries/mw.png differ diff --git a/src/main/resources/images/countries/mx.png b/src/main/resources/images/countries/mx.png new file mode 100755 index 0000000000..5bc58ab3e3 Binary files /dev/null and b/src/main/resources/images/countries/mx.png differ diff --git a/src/main/resources/images/countries/my.png b/src/main/resources/images/countries/my.png new file mode 100755 index 0000000000..9034cbab2c Binary files /dev/null and b/src/main/resources/images/countries/my.png differ diff --git a/src/main/resources/images/countries/mz.png b/src/main/resources/images/countries/mz.png new file mode 100755 index 0000000000..76405e063d Binary files /dev/null and b/src/main/resources/images/countries/mz.png differ diff --git a/src/main/resources/images/countries/na.png b/src/main/resources/images/countries/na.png new file mode 100755 index 0000000000..63358c67df Binary files /dev/null and b/src/main/resources/images/countries/na.png differ diff --git a/src/main/resources/images/countries/nc.png b/src/main/resources/images/countries/nc.png new file mode 100755 index 0000000000..2cad283782 Binary files /dev/null and b/src/main/resources/images/countries/nc.png differ diff --git a/src/main/resources/images/countries/ne.png b/src/main/resources/images/countries/ne.png new file mode 100755 index 0000000000..d85f424f38 Binary files /dev/null and b/src/main/resources/images/countries/ne.png differ diff --git a/src/main/resources/images/countries/nf.png b/src/main/resources/images/countries/nf.png new file mode 100755 index 0000000000..f9bcdda12c Binary files /dev/null and b/src/main/resources/images/countries/nf.png differ diff --git a/src/main/resources/images/countries/ng.png b/src/main/resources/images/countries/ng.png new file mode 100755 index 0000000000..3eea2e0207 Binary files /dev/null and b/src/main/resources/images/countries/ng.png differ diff --git a/src/main/resources/images/countries/ni.png b/src/main/resources/images/countries/ni.png new file mode 100755 index 0000000000..3969aaaaee Binary files /dev/null and b/src/main/resources/images/countries/ni.png differ diff --git a/src/main/resources/images/countries/nl.png b/src/main/resources/images/countries/nl.png new file mode 100755 index 0000000000..fe44791e32 Binary files /dev/null and b/src/main/resources/images/countries/nl.png differ diff --git a/src/main/resources/images/countries/no.png b/src/main/resources/images/countries/no.png new file mode 100755 index 0000000000..160b6b5b79 Binary files /dev/null and b/src/main/resources/images/countries/no.png differ diff --git a/src/main/resources/images/countries/np.png b/src/main/resources/images/countries/np.png new file mode 100755 index 0000000000..aeb058b7ea Binary files /dev/null and b/src/main/resources/images/countries/np.png differ diff --git a/src/main/resources/images/countries/nr.png b/src/main/resources/images/countries/nr.png new file mode 100755 index 0000000000..705fc337cc Binary files /dev/null and b/src/main/resources/images/countries/nr.png differ diff --git a/src/main/resources/images/countries/nu.png b/src/main/resources/images/countries/nu.png new file mode 100755 index 0000000000..c3ce4aedda Binary files /dev/null and b/src/main/resources/images/countries/nu.png differ diff --git a/src/main/resources/images/countries/nz.png b/src/main/resources/images/countries/nz.png new file mode 100755 index 0000000000..10d6306d17 Binary files /dev/null and b/src/main/resources/images/countries/nz.png differ diff --git a/src/main/resources/images/countries/om.png b/src/main/resources/images/countries/om.png new file mode 100755 index 0000000000..2ffba7e8c4 Binary files /dev/null and b/src/main/resources/images/countries/om.png differ diff --git a/src/main/resources/images/countries/pa.png b/src/main/resources/images/countries/pa.png new file mode 100755 index 0000000000..9b2ee9a780 Binary files /dev/null and b/src/main/resources/images/countries/pa.png differ diff --git a/src/main/resources/images/countries/pe.png b/src/main/resources/images/countries/pe.png new file mode 100755 index 0000000000..62a04977fb Binary files /dev/null and b/src/main/resources/images/countries/pe.png differ diff --git a/src/main/resources/images/countries/pf.png b/src/main/resources/images/countries/pf.png new file mode 100755 index 0000000000..771a0f6522 Binary files /dev/null and b/src/main/resources/images/countries/pf.png differ diff --git a/src/main/resources/images/countries/pg.png b/src/main/resources/images/countries/pg.png new file mode 100755 index 0000000000..10d6233496 Binary files /dev/null and b/src/main/resources/images/countries/pg.png differ diff --git a/src/main/resources/images/countries/ph.png b/src/main/resources/images/countries/ph.png new file mode 100755 index 0000000000..b89e15935d Binary files /dev/null and b/src/main/resources/images/countries/ph.png differ diff --git a/src/main/resources/images/countries/pk.png b/src/main/resources/images/countries/pk.png new file mode 100755 index 0000000000..e9df70ca4d Binary files /dev/null and b/src/main/resources/images/countries/pk.png differ diff --git a/src/main/resources/images/countries/pl.png b/src/main/resources/images/countries/pl.png new file mode 100755 index 0000000000..d413d010b5 Binary files /dev/null and b/src/main/resources/images/countries/pl.png differ diff --git a/src/main/resources/images/countries/pm.png b/src/main/resources/images/countries/pm.png new file mode 100755 index 0000000000..ba91d2c7a0 Binary files /dev/null and b/src/main/resources/images/countries/pm.png differ diff --git a/src/main/resources/images/countries/pn.png b/src/main/resources/images/countries/pn.png new file mode 100755 index 0000000000..aa9344f575 Binary files /dev/null and b/src/main/resources/images/countries/pn.png differ diff --git a/src/main/resources/images/countries/pr.png b/src/main/resources/images/countries/pr.png new file mode 100755 index 0000000000..82d9130da4 Binary files /dev/null and b/src/main/resources/images/countries/pr.png differ diff --git a/src/main/resources/images/countries/ps.png b/src/main/resources/images/countries/ps.png new file mode 100755 index 0000000000..f5f547762e Binary files /dev/null and b/src/main/resources/images/countries/ps.png differ diff --git a/src/main/resources/images/countries/pt.png b/src/main/resources/images/countries/pt.png new file mode 100755 index 0000000000..ece7980150 Binary files /dev/null and b/src/main/resources/images/countries/pt.png differ diff --git a/src/main/resources/images/countries/pw.png b/src/main/resources/images/countries/pw.png new file mode 100755 index 0000000000..6178b254a5 Binary files /dev/null and b/src/main/resources/images/countries/pw.png differ diff --git a/src/main/resources/images/countries/py.png b/src/main/resources/images/countries/py.png new file mode 100755 index 0000000000..cb8723c064 Binary files /dev/null and b/src/main/resources/images/countries/py.png differ diff --git a/src/main/resources/images/countries/qa.png b/src/main/resources/images/countries/qa.png new file mode 100755 index 0000000000..ed4c621fa7 Binary files /dev/null and b/src/main/resources/images/countries/qa.png differ diff --git a/src/main/resources/images/countries/re.png b/src/main/resources/images/countries/re.png new file mode 100755 index 0000000000..8332c4ec23 Binary files /dev/null and b/src/main/resources/images/countries/re.png differ diff --git a/src/main/resources/images/countries/ro.png b/src/main/resources/images/countries/ro.png new file mode 100755 index 0000000000..57e74a6510 Binary files /dev/null and b/src/main/resources/images/countries/ro.png differ diff --git a/src/main/resources/images/countries/rs.png b/src/main/resources/images/countries/rs.png new file mode 100644 index 0000000000..9439a5b605 Binary files /dev/null and b/src/main/resources/images/countries/rs.png differ diff --git a/src/main/resources/images/countries/ru.png b/src/main/resources/images/countries/ru.png new file mode 100755 index 0000000000..47da4214fd Binary files /dev/null and b/src/main/resources/images/countries/ru.png differ diff --git a/src/main/resources/images/countries/rw.png b/src/main/resources/images/countries/rw.png new file mode 100755 index 0000000000..535649178a Binary files /dev/null and b/src/main/resources/images/countries/rw.png differ diff --git a/src/main/resources/images/countries/sa.png b/src/main/resources/images/countries/sa.png new file mode 100755 index 0000000000..b4641c7e8b Binary files /dev/null and b/src/main/resources/images/countries/sa.png differ diff --git a/src/main/resources/images/countries/sb.png b/src/main/resources/images/countries/sb.png new file mode 100755 index 0000000000..a9937ccf09 Binary files /dev/null and b/src/main/resources/images/countries/sb.png differ diff --git a/src/main/resources/images/countries/sc.png b/src/main/resources/images/countries/sc.png new file mode 100755 index 0000000000..39ee37184e Binary files /dev/null and b/src/main/resources/images/countries/sc.png differ diff --git a/src/main/resources/images/countries/scotland.png b/src/main/resources/images/countries/scotland.png new file mode 100755 index 0000000000..a0e57b4122 Binary files /dev/null and b/src/main/resources/images/countries/scotland.png differ diff --git a/src/main/resources/images/countries/sd.png b/src/main/resources/images/countries/sd.png new file mode 100755 index 0000000000..eaab69eb78 Binary files /dev/null and b/src/main/resources/images/countries/sd.png differ diff --git a/src/main/resources/images/countries/se.png b/src/main/resources/images/countries/se.png new file mode 100755 index 0000000000..1994653dac Binary files /dev/null and b/src/main/resources/images/countries/se.png differ diff --git a/src/main/resources/images/countries/sg.png b/src/main/resources/images/countries/sg.png new file mode 100755 index 0000000000..dd34d61210 Binary files /dev/null and b/src/main/resources/images/countries/sg.png differ diff --git a/src/main/resources/images/countries/sh.png b/src/main/resources/images/countries/sh.png new file mode 100755 index 0000000000..4b1d2a2910 Binary files /dev/null and b/src/main/resources/images/countries/sh.png differ diff --git a/src/main/resources/images/countries/si.png b/src/main/resources/images/countries/si.png new file mode 100755 index 0000000000..bb1476ff5f Binary files /dev/null and b/src/main/resources/images/countries/si.png differ diff --git a/src/main/resources/images/countries/sj.png b/src/main/resources/images/countries/sj.png new file mode 100755 index 0000000000..160b6b5b79 Binary files /dev/null and b/src/main/resources/images/countries/sj.png differ diff --git a/src/main/resources/images/countries/sk.png b/src/main/resources/images/countries/sk.png new file mode 100755 index 0000000000..7ccbc8274a Binary files /dev/null and b/src/main/resources/images/countries/sk.png differ diff --git a/src/main/resources/images/countries/sl.png b/src/main/resources/images/countries/sl.png new file mode 100755 index 0000000000..12d812d29f Binary files /dev/null and b/src/main/resources/images/countries/sl.png differ diff --git a/src/main/resources/images/countries/sm.png b/src/main/resources/images/countries/sm.png new file mode 100755 index 0000000000..3df2fdcf8c Binary files /dev/null and b/src/main/resources/images/countries/sm.png differ diff --git a/src/main/resources/images/countries/sn.png b/src/main/resources/images/countries/sn.png new file mode 100755 index 0000000000..eabb71db4e Binary files /dev/null and b/src/main/resources/images/countries/sn.png differ diff --git a/src/main/resources/images/countries/so.png b/src/main/resources/images/countries/so.png new file mode 100755 index 0000000000..4a1ea4b29b Binary files /dev/null and b/src/main/resources/images/countries/so.png differ diff --git a/src/main/resources/images/countries/sr.png b/src/main/resources/images/countries/sr.png new file mode 100755 index 0000000000..5eff9271d2 Binary files /dev/null and b/src/main/resources/images/countries/sr.png differ diff --git a/src/main/resources/images/countries/st.png b/src/main/resources/images/countries/st.png new file mode 100755 index 0000000000..2978557b19 Binary files /dev/null and b/src/main/resources/images/countries/st.png differ diff --git a/src/main/resources/images/countries/sv.png b/src/main/resources/images/countries/sv.png new file mode 100755 index 0000000000..24987990b7 Binary files /dev/null and b/src/main/resources/images/countries/sv.png differ diff --git a/src/main/resources/images/countries/sy.png b/src/main/resources/images/countries/sy.png new file mode 100755 index 0000000000..f5ce30dcb7 Binary files /dev/null and b/src/main/resources/images/countries/sy.png differ diff --git a/src/main/resources/images/countries/sz.png b/src/main/resources/images/countries/sz.png new file mode 100755 index 0000000000..914ee861d4 Binary files /dev/null and b/src/main/resources/images/countries/sz.png differ diff --git a/src/main/resources/images/countries/tc.png b/src/main/resources/images/countries/tc.png new file mode 100755 index 0000000000..8fc1156bec Binary files /dev/null and b/src/main/resources/images/countries/tc.png differ diff --git a/src/main/resources/images/countries/td.png b/src/main/resources/images/countries/td.png new file mode 100755 index 0000000000..667f21fd9d Binary files /dev/null and b/src/main/resources/images/countries/td.png differ diff --git a/src/main/resources/images/countries/tf.png b/src/main/resources/images/countries/tf.png new file mode 100755 index 0000000000..80529a4361 Binary files /dev/null and b/src/main/resources/images/countries/tf.png differ diff --git a/src/main/resources/images/countries/tg.png b/src/main/resources/images/countries/tg.png new file mode 100755 index 0000000000..3aa00ad4df Binary files /dev/null and b/src/main/resources/images/countries/tg.png differ diff --git a/src/main/resources/images/countries/th.png b/src/main/resources/images/countries/th.png new file mode 100755 index 0000000000..dd8ba91719 Binary files /dev/null and b/src/main/resources/images/countries/th.png differ diff --git a/src/main/resources/images/countries/tj.png b/src/main/resources/images/countries/tj.png new file mode 100755 index 0000000000..617bf6455f Binary files /dev/null and b/src/main/resources/images/countries/tj.png differ diff --git a/src/main/resources/images/countries/tk.png b/src/main/resources/images/countries/tk.png new file mode 100755 index 0000000000..67b8c8cb51 Binary files /dev/null and b/src/main/resources/images/countries/tk.png differ diff --git a/src/main/resources/images/countries/tl.png b/src/main/resources/images/countries/tl.png new file mode 100755 index 0000000000..77da181e9c Binary files /dev/null and b/src/main/resources/images/countries/tl.png differ diff --git a/src/main/resources/images/countries/tm.png b/src/main/resources/images/countries/tm.png new file mode 100755 index 0000000000..828020ecd0 Binary files /dev/null and b/src/main/resources/images/countries/tm.png differ diff --git a/src/main/resources/images/countries/tn.png b/src/main/resources/images/countries/tn.png new file mode 100755 index 0000000000..183cdd3dc9 Binary files /dev/null and b/src/main/resources/images/countries/tn.png differ diff --git a/src/main/resources/images/countries/to.png b/src/main/resources/images/countries/to.png new file mode 100755 index 0000000000..f89b8ba755 Binary files /dev/null and b/src/main/resources/images/countries/to.png differ diff --git a/src/main/resources/images/countries/tr.png b/src/main/resources/images/countries/tr.png new file mode 100755 index 0000000000..be32f77e99 Binary files /dev/null and b/src/main/resources/images/countries/tr.png differ diff --git a/src/main/resources/images/countries/tt.png b/src/main/resources/images/countries/tt.png new file mode 100755 index 0000000000..2a11c1e20a Binary files /dev/null and b/src/main/resources/images/countries/tt.png differ diff --git a/src/main/resources/images/countries/tv.png b/src/main/resources/images/countries/tv.png new file mode 100755 index 0000000000..28274c5fb4 Binary files /dev/null and b/src/main/resources/images/countries/tv.png differ diff --git a/src/main/resources/images/countries/tw.png b/src/main/resources/images/countries/tw.png new file mode 100755 index 0000000000..f31c654c99 Binary files /dev/null and b/src/main/resources/images/countries/tw.png differ diff --git a/src/main/resources/images/countries/tz.png b/src/main/resources/images/countries/tz.png new file mode 100755 index 0000000000..c00ff79614 Binary files /dev/null and b/src/main/resources/images/countries/tz.png differ diff --git a/src/main/resources/images/countries/ua.png b/src/main/resources/images/countries/ua.png new file mode 100755 index 0000000000..09563a2194 Binary files /dev/null and b/src/main/resources/images/countries/ua.png differ diff --git a/src/main/resources/images/countries/ug.png b/src/main/resources/images/countries/ug.png new file mode 100755 index 0000000000..33f4affade Binary files /dev/null and b/src/main/resources/images/countries/ug.png differ diff --git a/src/main/resources/images/countries/um.png b/src/main/resources/images/countries/um.png new file mode 100755 index 0000000000..c1dd9654b0 Binary files /dev/null and b/src/main/resources/images/countries/um.png differ diff --git a/src/main/resources/images/countries/us.png b/src/main/resources/images/countries/us.png new file mode 100755 index 0000000000..10f451fe85 Binary files /dev/null and b/src/main/resources/images/countries/us.png differ diff --git a/src/main/resources/images/countries/uy.png b/src/main/resources/images/countries/uy.png new file mode 100755 index 0000000000..31d948a067 Binary files /dev/null and b/src/main/resources/images/countries/uy.png differ diff --git a/src/main/resources/images/countries/uz.png b/src/main/resources/images/countries/uz.png new file mode 100755 index 0000000000..fef5dc1709 Binary files /dev/null and b/src/main/resources/images/countries/uz.png differ diff --git a/src/main/resources/images/countries/va.png b/src/main/resources/images/countries/va.png new file mode 100755 index 0000000000..b31eaf225d Binary files /dev/null and b/src/main/resources/images/countries/va.png differ diff --git a/src/main/resources/images/countries/vc.png b/src/main/resources/images/countries/vc.png new file mode 100755 index 0000000000..8fa17b0612 Binary files /dev/null and b/src/main/resources/images/countries/vc.png differ diff --git a/src/main/resources/images/countries/ve.png b/src/main/resources/images/countries/ve.png new file mode 100755 index 0000000000..00c90f9aff Binary files /dev/null and b/src/main/resources/images/countries/ve.png differ diff --git a/src/main/resources/images/countries/vg.png b/src/main/resources/images/countries/vg.png new file mode 100755 index 0000000000..4156907986 Binary files /dev/null and b/src/main/resources/images/countries/vg.png differ diff --git a/src/main/resources/images/countries/vi.png b/src/main/resources/images/countries/vi.png new file mode 100755 index 0000000000..ed26915a32 Binary files /dev/null and b/src/main/resources/images/countries/vi.png differ diff --git a/src/main/resources/images/countries/vn.png b/src/main/resources/images/countries/vn.png new file mode 100755 index 0000000000..ec7cd48a34 Binary files /dev/null and b/src/main/resources/images/countries/vn.png differ diff --git a/src/main/resources/images/countries/vu.png b/src/main/resources/images/countries/vu.png new file mode 100755 index 0000000000..b3397bc63d Binary files /dev/null and b/src/main/resources/images/countries/vu.png differ diff --git a/src/main/resources/images/countries/wales.png b/src/main/resources/images/countries/wales.png new file mode 100755 index 0000000000..e0d7cee110 Binary files /dev/null and b/src/main/resources/images/countries/wales.png differ diff --git a/src/main/resources/images/countries/wf.png b/src/main/resources/images/countries/wf.png new file mode 100755 index 0000000000..9f9558734f Binary files /dev/null and b/src/main/resources/images/countries/wf.png differ diff --git a/src/main/resources/images/countries/ws.png b/src/main/resources/images/countries/ws.png new file mode 100755 index 0000000000..c16950802e Binary files /dev/null and b/src/main/resources/images/countries/ws.png differ diff --git a/src/main/resources/images/countries/ye.png b/src/main/resources/images/countries/ye.png new file mode 100755 index 0000000000..468dfad038 Binary files /dev/null and b/src/main/resources/images/countries/ye.png differ diff --git a/src/main/resources/images/countries/yt.png b/src/main/resources/images/countries/yt.png new file mode 100755 index 0000000000..c298f378be Binary files /dev/null and b/src/main/resources/images/countries/yt.png differ diff --git a/src/main/resources/images/countries/za.png b/src/main/resources/images/countries/za.png new file mode 100755 index 0000000000..57c58e2119 Binary files /dev/null and b/src/main/resources/images/countries/za.png differ diff --git a/src/main/resources/images/countries/zm.png b/src/main/resources/images/countries/zm.png new file mode 100755 index 0000000000..c25b07beef Binary files /dev/null and b/src/main/resources/images/countries/zm.png differ diff --git a/src/main/resources/images/countries/zw.png b/src/main/resources/images/countries/zw.png new file mode 100755 index 0000000000..53c97259b9 Binary files /dev/null and b/src/main/resources/images/countries/zw.png differ