001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.widgets;
003
004import javax.swing.text.JTextComponent;
005
006/**
007 * Default text component validator that only checks that an input field is not empty.
008 * @since 10073
009 */
010public class DefaultTextComponentValidator extends AbstractTextComponentValidator {
011
012    private final String validFeedback;
013    private final String invalidFeedback;
014
015    /**
016     * Constructs a new {@code DefaultTextComponentValidator}.
017     * @param tc he text component. Must not be null.
018     * @param validFeedback text displayed for valid feedback
019     * @param invalidFeedback text displayed for invalid feedback
020     */
021    public DefaultTextComponentValidator(JTextComponent tc, String validFeedback, String invalidFeedback) {
022        super(tc);
023        this.validFeedback = validFeedback;
024        this.invalidFeedback = invalidFeedback;
025    }
026
027    @Override
028    public boolean isValid() {
029        return !getComponent().getText().trim().isEmpty();
030    }
031
032    @Override
033    public void validate() {
034        if (isValid()) {
035            feedbackValid(validFeedback);
036        } else {
037            feedbackInvalid(invalidFeedback);
038        }
039    }
040}