package org.esa.snap.ui.tooladapter.dialogs;
import com.bc.ceres.swing.binding.internal.TextComponentAdapter;
import javax.swing.*;
import javax.swing.text.JTextComponent;
/**
* Created by jcoravu on 9/28/2016.
*/
public abstract class ValidateTextComponentAdapter extends TextComponentAdapter {
public ValidateTextComponentAdapter(JTextComponent textComponent) {
super(textComponent);
}
protected abstract boolean validateText(String text);
@Override
public InputVerifier createInputVerifier() {
return new ValidateTextVerifier();
}
private class ValidateTextVerifier extends InputVerifier {
private ValidateTextVerifier() {
}
@Override
public boolean verify(JComponent input) {
String text = ((JTextComponent) input).getText();
if (!validateText(text)) {
return false;
}
actionPerformed(null);
return getBinding().getProblem() == null;
}
}
}