decoro
decoro copied to clipboard
Сдвиг значения буквенного слота в соседний числовой
Настроил слот для ввода гос-номера автомобиля, вот так:
public final class AdditionalPredefinedSlots {
public static final Slot[] CAR_NUMBER_STANDARD = {
carNumberLetter(),
PredefinedSlots.hardcodedSlot(' ').withTags(Slot.TAG_DECORATION),
PredefinedSlots.digit(),
PredefinedSlots.digit(),
PredefinedSlots.digit(),
PredefinedSlots.hardcodedSlot(' ').withTags(Slot.TAG_DECORATION),
carNumberLetter(),
carNumberLetter(),
PredefinedSlots.hardcodedSlot(' ').withTags(Slot.TAG_DECORATION),
PredefinedSlots.digit(),
PredefinedSlots.digit(),
PredefinedSlots.digit()
};
public static Slot carNumberLetter() {
SlotValidatorSet slotValidatorSet = new SlotValidatorSet();
slotValidatorSet.add(new CarNumberLetterValidator());
return new Slot(Slot.RULE_INPUT_REPLACE, null, slotValidatorSet);
}
}
При этом, если в слотах 7 и 8 введены буквы, то при удалении слота 5 (6й у нас декоративный), буквенное значение из слота 7 переносится в него.
Такая же проблема будет при вводе, если отключить правило RULE_INPUT_REPLACE.
И еще одна проблема: если в буквенное поле попытаться ввести недопустимый символ, то правильный за ним уже не вводится, пока не удалишь "невидимый" неправильный.