Archived
0

implement clear, export, import market

This commit is contained in:
iMoHax
2015-01-14 14:03:28 +03:00
parent ed39bc7de9
commit 42a823bd95
13 changed files with 256 additions and 5 deletions

View File

@@ -1,5 +1,7 @@
package ru.trader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
import ru.trader.core.Market;
import ru.trader.core.MarketAnalyzer;
@@ -17,6 +19,7 @@ import java.io.UnsupportedEncodingException;
public class World {
private static Market world;
private static final String STORE_FILE="world.xml";
private final static Logger LOG = LoggerFactory.getLogger(World.class);
static {
try {
@@ -33,11 +36,24 @@ public class World {
world.commit();
}
public static void saveTo(File file) throws FileNotFoundException, UnsupportedEncodingException, XMLStreamException {
Store.saveToFile(world, file);
world.commit();
}
public static void imp(File file) throws IOException, SAXException {
LOG.info("Import from {}", file.getName());
XSSFImporter xssfImporter = new XSSFImporter(file);
world = xssfImporter.doImport();
}
public static void impXml(File file) throws ParserConfigurationException, SAXException, IOException {
LOG.info("Import from {}", file.getName());
Market market = Store.loadFromFile(file);
world.add(market);
}
public static Market getMarket() {
return world;
}

View File

@@ -18,6 +18,7 @@ import ru.trader.World;
import ru.trader.model.*;
import ru.trader.view.support.Localization;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException;
import java.io.File;
import java.io.FileNotFoundException;
@@ -111,19 +112,83 @@ public class MainController {
public void importWorld(ActionEvent actionEvent) {
try {
FileChooser fileChooser = new FileChooser();
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("Excel files (*.xlsx)", "*.xlsx");
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("XML bd files (*.xml)", "*.xml");
fileChooser.getExtensionFilters().add(extFilter);
fileChooser.setInitialDirectory(new File("."));
File file = fileChooser.showOpenDialog(null);
if (file !=null) {
World.imp(file);
World.impXml(file);
reload();
}
} catch (SAXException | IOException e) {
} catch (ParserConfigurationException | SAXException | IOException e) {
LOG.error("Error on import file", e);
}
}
public void exportWorld(ActionEvent actionEvent) {
try {
FileChooser fileChooser = new FileChooser();
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("XML bd files (*.xml)", "*.xml");
fileChooser.getExtensionFilters().add(extFilter);
fileChooser.setInitialDirectory(new File("."));
File file = fileChooser.showSaveDialog(null);
if (file !=null) {
World.saveTo(file);
reload();
}
} catch (FileNotFoundException | UnsupportedEncodingException | XMLStreamException e) {
LOG.error("Error on save as file", e);
}
}
public void clear(ActionEvent actionEvent){
Action res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.all")));
if (res == Dialog.ACTION_YES) {
market.clear();
reload();
}
}
public void clearOffers(ActionEvent actionEvent){
Action res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.offers")));
if (res == Dialog.ACTION_YES) {
market.clearOffers();
reload();
}
}
public void clearStations(ActionEvent actionEvent){
Action res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.stations")));
if (res == Dialog.ACTION_YES) {
market.clearStations();
reload();
}
}
public void clearSystems(ActionEvent actionEvent){
Action res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.systems")));
if (res == Dialog.ACTION_YES) {
market.clearSystems();
reload();
}
}
public void clearItems(ActionEvent actionEvent){
Action res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.items")));
if (res == Dialog.ACTION_YES) {
market.clearItems();
reload();
}
}
public void clearGroups(ActionEvent actionEvent){
Action res = Screeners.showConfirm(String.format(Localization.getString("dialog.confirm.remove"), Localization.getString("market.groups")));
if (res == Dialog.ACTION_YES) {
market.clearGroups();
reload();
}
}
public Optional<GroupModel> addGroup(){
GroupModel group = Screeners.showAddGroup(market);
return Optional.ofNullable(group);
@@ -189,6 +254,7 @@ public class MainController {
}
private void reload(){
if (world != null) world.getModeler().clear();
world = new MarketModel(World.getMarket());
market = world;
Screeners.reinitAll();

View File

@@ -101,6 +101,8 @@ public class OffersController {
}
void init(){
station = null;
system = null;
MarketModel market = MainController.getMarket();
market.getNotificator().add(new OffersChangeListener());
systems.setItems(market.systemsProperty());

View File

@@ -248,6 +248,8 @@ public class Screeners {
public static void reinitAll() {
mainController.init();
systemsEditorController.init();
vEditorController.init();
filterController.init();
EMDNUpdater.setMarket(MainController.getMarket());
}

View File

@@ -92,7 +92,7 @@ public class StationEditorController {
init();
}
private void init(){
void init(){
if (updater != null){
name.textProperty().unbindBidirectional(updater.nameProperty());
distance.numberProperty().unbindBidirectional(updater.distanceProperty());

View File

@@ -94,7 +94,7 @@ public class SystemsEditorController {
init();
}
private void init(){
void init(){
market = MainController.getMarket();
system1.setItems(market.systemsProperty());
system2.setItems(market.systemsProperty());

View File

@@ -203,4 +203,33 @@ public class MarketModel {
return modeler.get(p);
}
public void clear(){
LOG.info("Clear market");
market.clear();
}
public void clearOffers(){
LOG.info("Clear offers");
market.clearOffers();
}
public void clearStations(){
LOG.info("Clear stations");
market.clearVendors();
}
public void clearSystems(){
LOG.info("Clear systems");
market.clearPlaces();
}
public void clearItems(){
LOG.info("Clear items");
market.clearItems();
}
public void clearGroups(){
LOG.info("Clear groups");
market.clearGroups();
}
}

View File

@@ -1,6 +1,8 @@
# Market
market.all=All
market.systems=Systems
market.stations=Stations
market.groups=Commodities groups
market.items=Commods
market.offers=Offers
market.item.name=Commodity
@@ -46,6 +48,7 @@ main.title=Trader
main.menu.file=File
main.menu.file.save=Save
main.menu.file.import=Import...
main.menu.file.export=Export...
main.menu.edit=Edit
main.menu.edit.addSystem=Add System
main.menu.edit.editSystem=Edit System
@@ -54,6 +57,7 @@ main.menu.edit.addStation=Add Station
main.menu.edit.editStation=Edit Station
main.menu.edit.removeStation=Delete Station
main.menu.edit.addItem=Add Commodity
main.menu.edit.clear=Clear
main.menu.settings=Settings
main.menu.settings.language=Language
main.menu.settings.language.item=English

View File

@@ -1,6 +1,8 @@
# Market
market.all=\u0412\u0441\u0435
market.systems=\u0421\u0438\u0441\u0442\u0435\u043C\u044B
market.stations=\u0421\u0442\u0430\u043D\u0446\u0438\u0438
market.groups=\u0413\u0440\u0443\u043F\u043F\u044B \u0442\u043E\u0432\u0430\u0440\u043E\u0432
market.items=\u0422\u043E\u0432\u0430\u0440\u044B
market.offers=\u0417\u0430\u043A\u0430\u0437\u044B
market.item.name=\u0422\u043E\u0432\u0430\u0440
@@ -47,6 +49,7 @@ main.title=\u0422\u043E\u0440\u0433\u043E\u0439\u0434
main.menu.file=\u0424\u0430\u0439\u043B
main.menu.file.save=\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C
main.menu.file.import=\u0418\u043C\u043F\u043E\u0440\u0442...
main.menu.file.export=\u042D\u043A\u0441\u043F\u043E\u0440\u0442...
main.menu.edit=\u041F\u0440\u0430\u0432\u043A\u0430
main.menu.edit.addSystem=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0438\u0441\u0442\u0435\u043C\u0443
main.menu.edit.editSystem=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0438\u0441\u0442\u0435\u043C\u0443
@@ -55,6 +58,7 @@ main.menu.edit.addStation=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u044
main.menu.edit.editStation=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0430\u043D\u0446\u0438\u044E
main.menu.edit.removeStation=\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0430\u043D\u0446\u0438\u044E
main.menu.edit.addItem=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u043E\u0432\u0430\u0440
main.menu.edit.clear=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C
main.menu.settings=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
main.menu.settings.language=\u042F\u0437\u044B\u043A
main.menu.settings.language.item=\u0420\u0443\u0441\u0441\u043A\u0438\u0439

View File

@@ -12,6 +12,7 @@
<Menu text="%main.menu.file">
<MenuItem text="%main.menu.file.save" onAction="#save"/>
<MenuItem text="%main.menu.file.import" onAction="#importWorld"/>
<MenuItem text="%main.menu.file.export" onAction="#exportWorld"/>
</Menu>
<Menu text="%main.menu.edit">
<MenuItem text="%main.menu.edit.addSystem" onAction="#addSystem"/>
@@ -20,6 +21,14 @@
<MenuItem text="%main.menu.edit.addStation" onAction="#addStation"/>
<MenuItem text="%main.menu.edit.editStation" onAction="#editStation"/>
<MenuItem text="%main.menu.edit.removeStation" onAction="#removeStation"/>
<Menu text="%main.menu.edit.clear">
<MenuItem text="%market.offers" onAction="#clearOffers"/>
<MenuItem text="%market.stations" onAction="#clearStations"/>
<MenuItem text="%market.systems" onAction="#clearSystems"/>
<MenuItem text="%market.items" onAction="#clearItems"/>
<MenuItem text="%market.groups" onAction="#clearGroups"/>
<MenuItem text="%market.all" onAction="#clear"/>
</Menu>
</Menu>
<Menu text="%main.menu.settings">
<MenuItem text="%main.menu.settings.filter" onAction="#editFilter"/>