Archived
0

add support import Maddavo's Market Share files

This commit is contained in:
iMoHax
2015-02-28 19:27:54 +03:00
parent d1f89de30a
commit d22a5bbcd8
3 changed files with 93 additions and 1 deletions

View File

@@ -15,6 +15,7 @@ import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
import ru.trader.Main;
import ru.trader.World;
import ru.trader.maddavo.Parser;
import ru.trader.model.*;
import ru.trader.view.support.Localization;
@@ -27,6 +28,7 @@ import java.io.UnsupportedEncodingException;
import java.util.Locale;
import java.util.Optional;
import java.util.ResourceBundle;
import java.util.function.Consumer;
public class MainController {
private final static Logger LOG = LoggerFactory.getLogger(MainController.class);
@@ -255,6 +257,51 @@ public class MainController {
Screeners.showFilter(market.getAnalyzer().getFilter());
}
public void impMadSystems(ActionEvent actionEvent) {
chooseFile(new FileChooser.ExtensionFilter("CSV files (*.csv)", "*.csv"), file -> {
try {
Parser.parseSystems(file, World.getMarket());
reload();
} catch (IOException e) {
LOG.error("Error on import file", e);
}
});
}
public void impMadStations(ActionEvent actionEvent) {
chooseFile(new FileChooser.ExtensionFilter("CSV files (*.csv)", "*.csv"), file -> {
try {
Parser.parseStations(file, World.getMarket());
reload();
} catch (IOException e) {
LOG.error("Error on import file", e);
}
});
}
public void impMadOffers(ActionEvent actionEvent) {
chooseFile(new FileChooser.ExtensionFilter("Prices files (*.prices)", "*.prices"), file -> {
try {
Parser.parsePrices(file, World.getMarket());
reload();
} catch (IOException e) {
LOG.error("Error on import file", e);
}
});
}
private void chooseFile(FileChooser.ExtensionFilter filter, Consumer<File> action) {
FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters().add(filter);
fileChooser.setInitialDirectory(new File("."));
File file = fileChooser.showOpenDialog(null);
if (file !=null) {
action.accept(file);
}
}
private void reload(){
if (world != null) world.getModeler().clear();
world = new MarketModel(World.getMarket());

View File

@@ -11,7 +11,14 @@
<MenuBar>
<Menu text="%main.menu.file">
<MenuItem text="%main.menu.file.save" onAction="#save"/>
<MenuItem text="%main.menu.file.import" onAction="#importWorld"/>
<Menu text="%main.menu.file.import">
<Menu text="Maddavo's Market Share">
<MenuItem text="%market.systems" onAction="#impMadSystems"/>
<MenuItem text="%market.stations" onAction="#impMadStations"/>
<MenuItem text="%market.offers" onAction="#impMadOffers"/>
</Menu>
<MenuItem text="XML" onAction="#importWorld"/>
</Menu>
<MenuItem text="%main.menu.file.export" onAction="#exportWorld"/>
</Menu>
<Menu text="%main.menu.edit">