Newer
Older
CardRegister / src / hayashi / yuu / register / DeviceSelectItem.java
@yuuhayashi yuuhayashi on 26 Jan 2014 1 KB version 2010-03-19
package hayashi.yuu.register;

import java.awt.event.ActionEvent;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.Hashtable;

import javax.swing.JComboBox;

public class DeviceSelectItem extends DeviceItem implements FocusListener {
	Hashtable<String, String> prop;			// 設定データを保持する領域
	String name;

	public DeviceSelectItem(Hashtable<String, String> prop, String name, String[] items) {
		super(name);
		this.prop = prop;
		this.name = name;
		field = new JComboBox();
		((JComboBox)field).addFocusListener(this);
		for (int i=0; i < items.length; i++) {
			((JComboBox)field).addItem(items[i]);
		}
		createItem(name, items[0]);
	}

	@Override
	void setupField(String value) {
		this.value = value;
		prop.put(this.name, value);
		((JComboBox)field).setSelectedItem(value);
		add(field);
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		this.value = (String) ((JComboBox)this.field).getSelectedItem();
		CardRegister.logger.fine("[反映] "+ label.getText() +" = "+ this.value);
		prop.put(label.getText(), this.value);
	}

	/**
	 * このフィールドにカーソルが移ったときの処理
	 */
	public void focusGained(FocusEvent arg0) {
		// 何もしない
	}

	/**
	 * このフィールドから他のフィールドへカーソルが移った時の処理。
	 */
	public void focusLost(FocusEvent e) {
		actionPerformed(null);
	}
}