/*
 * @(#)EnvRadioButton.java
 *
 * Copyright 2001 Nomura Research Institute, LTD. All rights reserved.
 *
 * RID-X : ラジオボタン
 *
 * @author  Intelligent Technology Inc.
 * @version 1.01 2002/01/29
 */
package jp.co.nri.rid.environment;

import java.util.Enumeration;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

/**
  * ラジオボタン
  **/
public class EnvRadioButton extends JPanel {

    /** パネル**/
    protected JPanel        mPanel = null;
    /** ボタングループ **/
    protected ButtonGroup   mGroup = new ButtonGroup();
 
  /**
    * ラジオボタン
    */
    public EnvRadioButton() {
        //パネルの生成
        mPanel = new JPanel();
        FlowLayout  layout = new FlowLayout(FlowLayout.LEFT);
        mPanel.setLayout(layout);
    }

  /**
    * ラジオボタンの状態を設定する
    *
    * @param  String      value           ラジオボタンのラベル
    * @return void
    */
    public void setString( String value ){
      if ( value == null ) {
          value = "None";
      }
      Enumeration elm = mGroup.getElements();
      while ( elm.hasMoreElements() ) {
          JRadioButton radio = (JRadioButton)elm.nextElement();
          if ( radio.getText().equals( value ) ) {
              radio.setSelected( true ) ;
          } else {
              radio.setSelected( false ) ;
          }
      }
    }

  /**
    * ラジオボタンの状態を取得する
    *
    * @return 選択されているボタンのラベル
    */
    public String getString(){
        Enumeration elm = mGroup.getElements();
        while ( elm.hasMoreElements() ) {
            JRadioButton radio = (JRadioButton)elm.nextElement();
            if ( radio.isSelected() ) {
                if ( radio.getText().equals("None") ) {
                    return null;
                } else {
                    return radio.getText() ;
                }
            }
        }
        return null;
    }

  /**
    * ラジオボタンを追加する
    *
    * @param  String      szLabel         ラジオボタンのラベル
    * @return void
    */
    public void addItem(String szLabel){
        JRadioButton radio = new JRadioButton( szLabel );
        mGroup.add(radio);
        mPanel.add(radio);
    }

  /**
    * パネルを取得する
    *
    * @return JPanel
    */
    public JPanel getPanel(){
        return mPanel;
    }


}
