Вы не ссылаетесь на несвязанный элемент управления из другого класса, это неправильный подход.
Скорее сообщите другому классу об изменении несвязанного элемента управления.Это делается в измененном методе элемента управления флажком:
boolean modified()
{
boolean ret = super();
;
salesTableForm.parmSpecialAction(this.value());
return ret;
}
В этом случае SalesTableForm
информируется об изменении флажка, вызывая метод parmSpecialAction
(имя выбрано произвольно).
Другой путь (который вы указали в вопросе) - проинформировать класс о существовании элемента управления и позволить классу напрямую вызвать control.value()
.Однако это обычно делает форму и класс тесно связанными, а это не то, что мы хотим.Элементы управления принадлежат форме, в которой они родились, и не должны передаваться.
По иронии судьбы метод SalesTableForm.enableUpdateJournalButtons
нарушает это правило, так как он принимает кнопки управления в качестве параметров.Правильный подход заключается в том, чтобы вычислить (и кэшировать) значения enableWathever
в функциях получения, затем позволить форме вызывать получатели и включать или отключать свои собственные кнопки.