2015-08-11 4 views
0

Я создал новый подкласс поведения калитки, который можно прикрепить к компонентам формы. Если для такого компонента возникает ошибка проверки, поведение показывает/скрывает конкретную метку ошибки. Мой код выглядит примерно так:Лучший способ использования дополнительных компонентов в калитном поведении

public MyErrorBehavior(Component errorComponent) { 
    // show/hide errorComponent within onUpdate() or 
    // onError() based on getComponent().isValid() 
} 

Мои вопросы: Можно ли передать компонент конструктору поведения?

Приветствия, Andreas

ответ

0

Да, поведение позволяет хранить ссылки на компоненты, пожалуйста, см EqualInputValidator в качестве примера.

Позаботьтесь о том, чтобы удалить эти компоненты из дерева компонентов: вы также должны удалить поведение, иначе у вас будут болтающиеся ссылки на компоненты, которые больше не отделяются.

+0

Thx для указания на пример. Что касается оборванных ссылок: в моем специальном случае FormComponent и связанная метка ошибки всегда удаляются вместе. Но спасибо за намек. – Andreas

0

Нет необходимости хранить ссылку на компонент, поскольку Wicket передает компонент в методе обратного вызова, например.

@Override 
public void onComponentTag(Component component, ComponentTag tag) 
{ 
    // cast component to FormComponent and make the check here 
} 

Таким образом, нет необходимости убирать, и вы можете добавить экземпляр Behavior в же более чем одного (форма) компонента.

+0

Это верно для поведения, взаимодействующего с его хостингом Component. Но в моем случае у меня есть другой компонент (метка ошибки), который мне нужно настроить. – Andreas

 Смежные вопросы

  • Нет связанных вопросов^_^