- package hayashi.yuu.register;
-
- import java.awt.Dimension;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
-
- import javax.swing.JComponent;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
-
- /**
- * public class PropertyItem extends JPanel implements ActionListener
- * @author hayashi
- *
- */
- public abstract class DeviceItem extends JPanel implements ActionListener
- {
- JLabel label;
- JComponent field;
- String value; // 設定データを保持する領域
- public static final int ITEM_WIDTH_1 = 120;
- public static final int ITEM_WIDTH_2 = 80;
- public static final int LINE_WIDTH = ITEM_WIDTH_1 + ITEM_WIDTH_2;
- public static final int LINE_HEIGHT = 18;
-
- /**
- * コンストラクタ
- * @param prop2
- * @param name
- * @param editable
- */
- public DeviceItem(String name) {
- super(null);
- this.value = new String("");
- }
-
- void createItem(String name, String value) {
- this.value = value;
- setupLabel(name, value);
- setupField(value);
-
- label.setBounds(0, 0, ITEM_WIDTH_1 - 6, LINE_HEIGHT);
- field.setBounds(ITEM_WIDTH_1, 0, ITEM_WIDTH_2, LINE_HEIGHT);
- setPreferredSize(new Dimension(ITEM_WIDTH_1, LINE_HEIGHT));
- }
-
- JLabel setupLabel(String name, String value) {
- label = new JLabel(name, JLabel.RIGHT);
- add(label);
- return label;
- }
-
- /**
- * コーディング例:
- *
- * void setupField(String name, String value) {
- * this.value = value;
- * ((JTextField)field).setText(value);
- * field.setFont(new Font("MS UI Gothic", Font.PLAIN, 12));
- * add(field);
- * }
- */
- abstract void setupField(String value);
-
- /**
- * [反映]ボタンがクリックされたときの処理
- *
- * public void actionPerformed(ActionEvent e) {
- * GuardixMonitor.logger.fine("[反映] "+ label.getText() +" = "+ text.getText());
- * prop.setProperty(label.getText(), text.getText());
- * }
- * @param e
- */
- public abstract void actionPerformed(ActionEvent e);
- }