Создание нескольких идентичных текстовых проверок слушателей в eclipse-rcp / swt
Я пытаюсь проверить ввод нескольких текстовых полей (т. Е. Они должны быть числом), и нашел фрагмент полезного кода нижеВот.
Однако, если у меня есть три текстовых поля (text
, moreText
а такжеevenMoreText
), как я могу применить проверяющего слушателя с одинаковыми функциями для каждого, без необходимости повторять (.addVerifyListener(new VerifyListener() {...
) код три раза?
Я не хочу реализовывать оператор switch или аналогичный (чтобы решить, к какому текстовому полю его применять), я хочу что-то более общее (что я, возможно, смогу сделать доступным для других классов для использования в будущем).
text.addVerifyListener(new VerifyListener() {
@Override
public void verifyText(VerifyEvent e) {
final String oldS = text.getText();
final String newS = oldS.substring(0, e.start) + e.text + oldS.substring(e.end);
try {
BigDecimal bd = new BigDecimal(newS);
// value is decimal
// Test value range
} catch (final NumberFormatException numberFormatException) {
// value is not decimal
e.doit = false;
}
}
});