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;
|
||||
|
||||
Reference in New Issue
Block a user