Контекст:
Я новичок в JavaFX, но я пытаюсь создать приложение, которое один из его основной особенностью является, чтобы показать пользователю все папки в определенной директории и автоматически обновлять представление, когда в этой папке удаляются новые папки или папки. Эти папки можно рассматривать как объекты (например, в ListView), и пользователь должен иметь возможность взаимодействовать с ними. Я хочу создать это приложение с использованием архитектуры MVC.MVC: Лучший способ просмотра каталога для изменения
Что я сделал до сих пор:
Так у меня есть мнение (FXML), класс контроллера и мою модель, которая обрабатывает мое приложение логики. Я использую WatchDir example from Oracle как вспомогательный класс в моей модели и запуска WatchService в контроллере, как это:
@Override
public void initialize(URL location, ResourceBundle resources) {
this.config = loadConfig(configFile);
this.facade = new facade(config);
Path rootPath = Paths.get(config.getDlRootPath());
try {
// register WatchService
new WatchDir(rootPath, false).processEvents();
statusText(rootPath + "is now being watched for changes");
} catch (IOException e) {
statusError("Directory " + e.getLocalizedMessage() + " does not exist.");
}
}
В методе processEvents WatchDir() Я могу сделать что-то вроде:
if (!recursive && (kind == ENTRY_CREATE)) {
// new folder was created
}
Мой вопрос :
Что является лучшим/самым элегантным способом сообщить моему контроллеру, что что-то изменилось и обновить ListView? Я хочу сохранить его в стиле MVC.
Различный подход также приветствуется :)
работает как шарм , это очень помогло мне! – lenny