Я определяю в таблице базы данных, какие поля ввода доступны в этой маске.
Теперь я добавляю поддержку пользовательских процедур, которые выполняются в определенных состояниях моей программы (onFocusLost поля, onChange,...)
Это отлично работает.
Теперь я застрял в выполнении onGenerate.
Когда я визуализирую маску, я держу список Runnable для хранения моих действий, которые должны быть выполнены при генерации (Во время рендеринга я знаю, какое действие должно быть выполнено. Во время генерации мне придется снова прочитать все данные. Поэтому я решил сохранить действие с помощью FunctionalInterface. И мне не нужны ни inputParameter, ни ReturnValue... так что я закончил с Runnable)
Код: Выделить всё
TextField tf = ...;
String s = ...;
actionsBeforeGenerate.add(() -> {
tf.setText(s);
});
Код: Выделить всё
private void startGenerate(){
//main.getActionsBeforeGenerate() == List
main.getActionsBeforeGenerate().forEach(action -> action.run());
generateWordDocument();
}
Как я могу изменить textField ДО того, как запустится моя GenerationLogic?
Если вам нужна дополнительная информация, не стесняйтесь спрашивать ее.
РЕДАКТИРОВАТЬ:
Я думаю, что нашел решение своей проблемы:
Код: Выделить всё
private void startGenerate(){
Task task = new Task() {
@Override
public Boolean call() throws Exception {
main.getActionsBeforeGenerate().forEach(action -> action.run());
....
generateWordDocument();
....
return Boolean.TRUE;
}
};
Thread thread = new Thread(task);
thread.setDaemon(true);
thread.start();
}
Мобильная версия