remember the last directory and fixed NPE

This commit is contained in:
Andreas Billmann
2015-12-18 01:00:58 +01:00
parent ee94a5904e
commit f90d2fbe33

View File

@@ -99,6 +99,7 @@ public class SmartCSVController extends FXMLController {
private final SaveCSVService saveCSVService = new SaveCSVService(); private final SaveCSVService saveCSVService = new SaveCSVService();
private CSVModel model; private CSVModel model;
private TableView<CSVRow> tableView; private TableView<CSVRow> tableView;
private File lastDirectory;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -189,6 +190,10 @@ public class SmartCSVController extends FXMLController {
fileChooser.getExtensionFilters().add(extFilter); fileChooser.getExtensionFilters().add(extFilter);
fileChooser.setTitle(title); fileChooser.setTitle(title);
if (lastDirectory != null) {
fileChooser.setInitialDirectory(lastDirectory);
}
//Show open file dialog //Show open file dialog
final File file = fileChooser.showOpenDialog(applicationPane.getScene().getWindow()); final File file = fileChooser.showOpenDialog(applicationPane.getScene().getWindow());
if (file != null) { if (file != null) {
@@ -225,24 +230,24 @@ public class SmartCSVController extends FXMLController {
*/ */
private void resetContent() { private void resetContent() {
model = csvLoader.getData(); model = csvLoader.getData();
model.setValidator(validationLoader.getValidator()); if (model != null) {
model.setValidator(validationLoader.getValidator());
tableView = new TableView<>();
tableView = new TableView<>(); for (String column : model.getHeader()) {
addColumn(column, tableView);
}
tableView.getItems().setAll(model.getRows());
tableView.setEditable(true);
for (String column: model.getHeader()) { AnchorPane.setBottomAnchor(tableView, 0.0);
addColumn(column, tableView); AnchorPane.setTopAnchor(tableView, 0.0);
AnchorPane.setLeftAnchor(tableView, 0.0);
AnchorPane.setRightAnchor(tableView, 0.0);
tableWrapper.getChildren().setAll(tableView);
errorList.setItems(model.getValidationError());
} }
tableView.getItems().setAll(model.getRows());
tableView.setEditable(true);
AnchorPane.setBottomAnchor(tableView, 0.0);
AnchorPane.setTopAnchor(tableView, 0.0);
AnchorPane.setLeftAnchor(tableView, 0.0);
AnchorPane.setRightAnchor(tableView, 0.0);
tableWrapper.getChildren().setAll(tableView);
errorList.setItems(model.getValidationError());
} }
/** /**
@@ -305,6 +310,7 @@ public class SmartCSVController extends FXMLController {
protected Void call() throws Exception { protected Void call() throws Exception {
if (file != null) { if (file != null) {
try { try {
lastDirectory = file.getParentFile();
fileReader.read(file); fileReader.read(file);
runLater(SmartCSVController.this::resetContent); runLater(SmartCSVController.this::resetContent);
} catch (Throwable ex) { } catch (Throwable ex) {