All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ace.ui.utils.FormatCreator Maven / Gradle / Ivy

The newest version!
package ace.ui.utils;

import javax.swing.*;
import javax.swing.text.DefaultFormatter;
import javax.swing.text.NumberFormatter;
import java.text.Format;
import java.text.NumberFormat;

/**
 * {@link Format} applicator
 */
public class FormatCreator {
    /**
     * Builds formatter depending on the parameter instance
     * @param value Parameter type
     * @param  Parameter type
     * @return built formatter
     */
    public static  JFormattedTextField.AbstractFormatter buildFormatter(T value) {
        if (value instanceof Integer) {
            NumberFormat format = NumberFormat.getInstance();
            format.setGroupingUsed(false);
            NumberFormatter formatter = new NumberFormatter(format);
            formatter.setMinimum(0);
            formatter.setMaximum(Integer.MAX_VALUE);
            formatter.setAllowsInvalid(false);
            formatter.setOverwriteMode(false);

            return formatter;
        } else if (value instanceof String) {
            DefaultFormatter formatter = new DefaultFormatter();
            formatter.setOverwriteMode(false);
            return formatter;
        } else {
            throw new RuntimeException("Unsupported data type for field");
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy