слушатель пледов Icefaces? - PullRequest
0 голосов
/ 04 октября 2011

Я использую корпоративный компонент из icefaces: numberSpinner

Я знаю, как инициализировать его из компонента, например:

processorAlSpinner =  new NumberSpinner(1,1,100,null)

где конструкторопределяется в их исходном коде, как:

public NumberSpinner(int number, java.lang.Integer min, java.lang.Integer max, com.icesoft.faces.facelets.component.spinner.INumberSpinnerListener spinnerListener);

Что я не знаю, как определить слушателя для него?(вы заметили, что я поставил null)

Их исходный код говорит:

Укажите экземпляр INumberSpinnerListener в конструкторе, если вы хотите получать события изменения значения

а как?Я попробовал это следующим образом:

public INumberSpinnerListener testSpinnerListener() {
    logger.info("Listener called!!!!!!!!!!!!!");
    return null;
}

processorAlSpinner =  new NumberSpinner(1,1,100,testSpinnerListener)

, но слушатель не вызывается, когда я изменяю значение счетчика с пользовательского интерфейса, поэтому я думаю, что я не прав ...

Не могли бы вы помочь?

1 Ответ

1 голос
/ 04 октября 2011

INumberSpinnerListener - это интерфейс (я предполагаю по названию), поэтому вам необходимо создать класс, который реализует этот интерфейс, например:

class MyListener implements INumberSpinnerListener {
    // ... implementations of all the methods in the listener
}

Затем вы предоставляете экземпляр этого в вызове,Например:

processorAlSpinner =  new NumberSpinner(1,1,100, new MyListener());

Если интерфейс простой, вы также можете напрямую определить анонимный класс, например:

processorAlSpinner =  new NumberSpinner(1,1,100, new INumberSpinnerListener() {
    // ... implementations of all the methods in the listener
});
...