Сделайте ярлык калиткой невидимым - PullRequest
1 голос
/ 17 января 2012

Я пытался скрыть ярлык следующим образом:

  Form form = new Form("form");

  Label myLabel = new Label("myLabel", new ResourceModel("mylabel.text").getObject());
  if(hide == true){
        myLabel.setVisible(Boolean.FALSE);
  }
  form.add(myLabel);

  ..

но ярлык все еще появляется. Кто-нибудь знает почему?

Ответы [ 3 ]

5 голосов
/ 17 января 2012

Вы должны переопределить метод isVisible вашей метки.

Label label = new Label(...) {
  @Override
  public boolean isVisible() {
    return !hide;
  }
};
form.add(...)
...
0 голосов
/ 07 ноября 2013

Информация ниже относится к калитке 1.4 (довольно старая).

Для Wicket 1.5 и 6.x (он же 1.6) правильным способом является переопределение компонента onConfigure() и вызов оттуда setVisible():

@Override
protected void onConfigure()
{
    super.onConfigure();
    boolean flag = myDbDAO.getVisibilityOfThisPanel()
    this.setVisible(flag);
}

Держите component.isVisible() на свету, его следует вызывать более одного раза для каждого запроса, поэтому при выполнении длительных вычислительных задач загрузка страниц / панелей замедляется. Поместите тяжелый процесс (DB, математика) в onConfigure() и оттуда, если нужно, вызовите isVisible().

0 голосов
/ 17 января 2012

на самом деле вы делаете невидимую метку, проблема в том, чтобы перерисовать html-страницу, что вы можете сделать, чтобы обновить страницу или с помощью ajax

...