mirror of
https://github.com/frosch95/SmartCSV.fx.git
synced 2026-04-11 13:38:23 +02:00
use of better icons, create a new validation file for csv
This commit is contained in:
@@ -135,6 +135,9 @@ public class SmartCSVController extends FXMLController {
|
||||
@FXML
|
||||
private MenuItem saveAsMenuItem;
|
||||
|
||||
@FXML
|
||||
private MenuItem createConfigMenuItem;
|
||||
|
||||
@FXML
|
||||
private MenuItem loadConfigMenuItem;
|
||||
|
||||
@@ -156,6 +159,9 @@ public class SmartCSVController extends FXMLController {
|
||||
@FXML
|
||||
private Button saveAsButton;
|
||||
|
||||
@FXML
|
||||
private Button createConfigButton;
|
||||
|
||||
@FXML
|
||||
private Button loadConfigButton;
|
||||
|
||||
@@ -199,11 +205,11 @@ public class SmartCSVController extends FXMLController {
|
||||
setupTableCellFactory();
|
||||
setupErrorSideBar(resourceBundle);
|
||||
|
||||
bindMenuItemsToFileExistence(currentCsvFile, saveMenuItem, saveAsMenuItem, addRowMenuItem, loadConfigMenuItem);
|
||||
bindButtonsToFileExistence(currentCsvFile, saveButton, saveAsButton, addRowButton, loadConfigButton);
|
||||
bindMenuItemsToContentExistence(currentCsvFile, saveMenuItem, saveAsMenuItem, addRowMenuItem, createConfigMenuItem, loadConfigMenuItem);
|
||||
bindButtonsToContentExistence(currentCsvFile, saveButton, saveAsButton, addRowButton, createConfigButton, loadConfigButton);
|
||||
|
||||
bindMenuItemsToFileExistence(currentConfigFile, saveConfigMenuItem, saveAsConfigMenuItem);
|
||||
bindButtonsToFileExistence(currentConfigFile, saveAsConfigButton, saveConfigButton);
|
||||
bindMenuItemsToContentExistence(currentConfigFile, saveConfigMenuItem, saveAsConfigMenuItem);
|
||||
bindButtonsToContentExistence(currentConfigFile, saveAsConfigButton, saveConfigButton);
|
||||
|
||||
bindCsvFileName();
|
||||
bindConfigFileName();
|
||||
@@ -251,6 +257,13 @@ public class SmartCSVController extends FXMLController {
|
||||
loadFile(JSON_FILTER_TEXT, JSON_FILTER_EXTENSION, "Open Validation Configuration", currentConfigFile);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void createConfig(ActionEvent actionEvent) {
|
||||
currentConfigFile.setContent(currentCsvFile.getContent().createValidationConfiguration());
|
||||
currentConfigFile.setFile(null);
|
||||
currentConfigFile.setFileChanged(true);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void saveCsv(ActionEvent actionEvent) {
|
||||
useSaveFileService(currentCsvFile);
|
||||
@@ -263,7 +276,11 @@ public class SmartCSVController extends FXMLController {
|
||||
|
||||
@FXML
|
||||
public void saveConfig(ActionEvent actionEvent) {
|
||||
useSaveFileService(currentConfigFile);
|
||||
if (currentConfigFile.getFile() == null) {
|
||||
saveAsConfig(actionEvent);
|
||||
} else {
|
||||
useSaveFileService(currentConfigFile);
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
@@ -375,15 +392,15 @@ public class SmartCSVController extends FXMLController {
|
||||
tableView.getSelectionModel().select(lastRow);
|
||||
}
|
||||
|
||||
private void bindMenuItemsToFileExistence(FileStorage file, MenuItem... items) {
|
||||
private void bindMenuItemsToContentExistence(FileStorage file, MenuItem... items) {
|
||||
for (MenuItem item: items) {
|
||||
item.disableProperty().bind(isNull(file.fileProperty()));
|
||||
item.disableProperty().bind(isNull(file.contentProperty()));
|
||||
}
|
||||
}
|
||||
|
||||
private void bindButtonsToFileExistence(FileStorage file, Button... items) {
|
||||
private void bindButtonsToContentExistence(FileStorage file, Button... items) {
|
||||
for (Button item: items) {
|
||||
item.disableProperty().bind(isNull(file.fileProperty()));
|
||||
item.disableProperty().bind(isNull(file.contentProperty()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -461,50 +478,45 @@ public class SmartCSVController extends FXMLController {
|
||||
File file = fileChooser.showOpenDialog(applicationPane.getScene().getWindow());
|
||||
if (file != null) {
|
||||
storageFile.setFile(file);
|
||||
useLoadFileService(storageFile, event -> runLater(() -> {
|
||||
resetContent();
|
||||
storageFile.setFileChanged(false);
|
||||
}));
|
||||
useLoadFileService(storageFile, t -> resetContent());
|
||||
}
|
||||
}
|
||||
|
||||
private File saveFile(String filterText, String filter, FileStorage initFile) {
|
||||
File file = initFile.getFile();
|
||||
if (initFile.getContent() != null) {
|
||||
private File saveFile(String filterText, String filter, FileStorage fileStorage) {
|
||||
File file = fileStorage.getFile();
|
||||
if (fileStorage.getContent() != null) {
|
||||
final FileChooser fileChooser = new FileChooser();
|
||||
|
||||
//Set extension filter
|
||||
final FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter(filterText, filter);
|
||||
fileChooser.getExtensionFilters().add(extFilter);
|
||||
|
||||
if (initFile.getFile() != null) {
|
||||
fileChooser.setInitialDirectory(initFile.getFile().getParentFile());
|
||||
fileChooser.setInitialFileName(initFile.getFile().getName());
|
||||
if (fileStorage.getFile() != null) {
|
||||
fileChooser.setInitialDirectory(fileStorage.getFile().getParentFile());
|
||||
fileChooser.setInitialFileName(fileStorage.getFile().getName());
|
||||
}
|
||||
fileChooser.setTitle("Save File");
|
||||
|
||||
//Show open file dialog
|
||||
file = fileChooser.showSaveDialog(applicationPane.getScene().getWindow());
|
||||
if (file != null) {
|
||||
initFile.setFile(file);
|
||||
useSaveFileService(currentCsvFile);
|
||||
fileStorage.setFile(file);
|
||||
useSaveFileService(fileStorage);
|
||||
}
|
||||
}
|
||||
return file;
|
||||
}
|
||||
|
||||
private void useLoadFileService(FileStorage fileStorage, EventHandler<WorkerStateEvent> value) {
|
||||
private void useLoadFileService(FileStorage fileStorage, EventHandler<WorkerStateEvent> onSucceededHandler) {
|
||||
loadFileService.setFileStorage(fileStorage);
|
||||
loadFileService.restart();
|
||||
loadFileService.setOnSucceeded(value);
|
||||
loadFileService.setOnSucceeded(onSucceededHandler);
|
||||
}
|
||||
|
||||
private void useSaveFileService(FileStorage fileStorage) {
|
||||
saveFileService.setFileStorage(fileStorage);
|
||||
saveFileService.restart();
|
||||
saveFileService.setOnSucceeded(event -> runLater(() -> {
|
||||
resetContent();
|
||||
}));
|
||||
saveFileService.setOnSucceeded(t -> resetContent());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -569,7 +581,7 @@ public class SmartCSVController extends FXMLController {
|
||||
private ContextMenu contextMenuForColumn(String header) {
|
||||
ContextMenu contextMenu = new ContextMenu();
|
||||
MenuItem editColumnRulesMenuItem = new MenuItem(resourceBundle.getString("context.menu.edit.column.rules"));
|
||||
bindMenuItemsToFileExistence(currentConfigFile, editColumnRulesMenuItem);
|
||||
bindMenuItemsToContentExistence(currentConfigFile, editColumnRulesMenuItem);
|
||||
editColumnRulesMenuItem.setOnAction(e -> showValidationEditor(header));
|
||||
contextMenu.getItems().addAll(editColumnRulesMenuItem);
|
||||
return contextMenu;
|
||||
|
||||
@@ -126,6 +126,14 @@ public class CSVModel {
|
||||
return validator != null && validator.hasConfig();
|
||||
}
|
||||
|
||||
public ValidationConfiguration createValidationConfiguration() {
|
||||
ValidationConfiguration newValidationConfiguration = new ValidationConfiguration();
|
||||
newValidationConfiguration.setHeaderNames(this.header);
|
||||
this.validator = new Validator(newValidationConfiguration);
|
||||
this.revalidate();
|
||||
return newValidationConfiguration;
|
||||
}
|
||||
|
||||
private static class RevalidationService extends Service<List<ValidationError>> {
|
||||
|
||||
private Validator validator;
|
||||
|
||||
@@ -39,4 +39,8 @@ public class HeaderConfiguration {
|
||||
public String[] getNames() {
|
||||
return names;
|
||||
}
|
||||
|
||||
public void setNames(String[] names) {
|
||||
this.names = names;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +48,10 @@ public class ValidationConfiguration {
|
||||
return headerConfiguration.getNames();
|
||||
}
|
||||
|
||||
public void setHeaderNames(String[] headerNames) {
|
||||
headerConfiguration.setNames(headerNames);
|
||||
}
|
||||
|
||||
public Boolean getIntegerRuleFor(String column) {
|
||||
return (Boolean)getValue(column, "integer");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user