|  | 

Java

Numeric Validator – Negative Numeric Validator (Sayı Doğrulayıcısı, Negatif Sayı Doğrulayıcı)

Kullanıcılara veri girişi yaptırırken çokça ihtiyaç duyduğumuz bir özellik olan doğrulayıcılar(validator), girilen değerlerin istenilen formatta olup olmadığını kontrol edip ona göre hata fırlatabilen kontrol mekanizmalarıdır.

Vaadin kullanarak geliştirdiğim projemde, ihtiyaca binaen sayısal değer girilmesini istediğim bir alanda negatif değerleri de kabul etmem gerekiyordu. Benzer bileşenler vardı(NumericField) gibi. Fakat tam istediğim özellikleri karşılamadıkları için bu bileşenleri kullanmak yerine, TextField ı kendi Validator larım sayesinde NumericField haline dönüştürüyorum.

Şu şekilde bir TextField oluşturalım;

TextField txAmount = new TextField();
txAmount.setCaption("Adet/Miktar");
txAmount.addValidator(new NumericValidator());

if(txAmount.isValid()){
    Notification.show("Tebrikler, Geçerli adet girdiniz");
}

NumericSpaceValidator sayfamız şu şekilde;

package com.comu.bapsis.ui.validators;

import com.vaadin.data.Validator;
import org.apache.commons.lang.StringUtils;

public class NumericSpaceValidator implements Validator {
    @Override
    public void validate(Object value) throws InvalidValueException {

        String text = value.toString();
// Girilen değerimiz boş ise boş olamaz hatası fırlatıyoruz.
        if (StringUtils.isBlank(text)) throw new InvalidValueException("Boş olamaz");

// Girilen değer eğer ki - ile başlıyorsa ilk karakteri es geçmesini sağlıyoruz. kişinin negatif değer 
//girdiğini anlamak için bu kontrolü yapıyoruz. Bu es geçme işlemini yapmaz ise, alt tarafta girilen 
//değerin her bir karakterinin sayısal bir ifade olması durumunu kontrol ediyoruz. 
// Eksi (-) operatörünü gördüğünde sayısal bir ifade değil diye hata fırlatırdı.
        if (text.startsWith("-"))
            text = text.substring(1, text.length() - 1);

// Girilen değerin char dizisi haline döndürüp, her bir karakterinin sayısal olup olmadığına bakıyoruz. 
//Eğer sayısal olmayan bir karakterle karşılaşırsak
// sayı olmalı diye InvalidValueException hatası fırlatıyoruz. 

//girilen değerimizi, char tipinde karakter dizisine döndürdük
        char[] characters = text.toCharArray();

        for (char ch : characters) {
            if (!StringUtils.isNumericSpace(String.valueOf(ch))) 
               throw new InvalidValueException("Sayı olmalı");
        }
    }
}

 

 

Form arayüzündeki kontrol sonuçlarına bakacak olursak;

screenshot_14

Share
negative-numeric-validator-negatif-sayi-dogrulayicisi

ABOUT THE AUTHOR

Java Software Developer

POST YOUR COMMENTS

Your email address will not be published. Required fields are marked *

Name *

Email *

Website

Aralık 2017
P S Ç P C C P
« Şub    
 123
45678910
11121314151617
18192021222324
25262728293031

Son Yorumlar