package open.dolphin.project;
import java.awt.Component;
import java.beans.PropertyDescriptor;
import java.beans.PropertyEditor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JTextField;
/**
*
* @author kazushi Minagawa
*/
public class TextFieldSetter {
private final SettingBean bean;
private final PropertyDescriptor pd;
private final PropertyEditor editor;
private final Component c;
public TextFieldSetter(SettingBean bean, PropertyDescriptor pd, PropertyEditor editor, Component c) {
this.bean = bean;
this.pd = pd;
this.editor = editor;
this.c = c;
}
public void setText(String text) {
JTextField tf = (JTextField) c;
tf.setText(text);
editor.setAsText(tf.getText());
Method setter = pd.getWriteMethod();
try {
setter.invoke(bean, new Object[]{editor.getValue()});
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
Logger.getLogger(ConnectionPropertySheet.class.getName()).log(Level.SEVERE, null, ex);
}
}
}