content: package tim.prune.correlate;
  
  import java.awt.BorderLayout;
  import java.awt.GridLayout;
  
  import javax.swing.BorderFactory;
  import javax.swing.ButtonGroup;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.JRadioButton;
  import javax.swing.border.EtchedBorder;
  
  import tim.prune.I18nManager;
  
  /**
   * GUI element to allow the selection of timestamp options
   * for audio clip correlation
   */
  public class AudioTimestampSelector extends JPanel
  {
  	/** Array of radio buttons */
  	private JRadioButton[] _radios = new JRadioButton[3];
  
  
  	/**
  	 * Constructor
  	 * @param inTopLabelKey key for description label at top
  	 * @param inLowerLabelKey key for description label at bottom, if any
  	 */
  	public AudioTimestampSelector(String inTopLabelKey, String inLowerLabelKey)
  	{
  		createComponents(inTopLabelKey, inLowerLabelKey);
  		setBorder(BorderFactory.createCompoundBorder(
  			BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), BorderFactory.createEmptyBorder(4, 4, 4, 4))
  		);
  	}
  
  	/**
  	 * Create the GUI components
  	 * @param inTopLabelKey key for description label at top
  	 * @param inLowerLabelKey key for description label at bottom, if any
  	 */
  	private void createComponents(String inTopLabelKey, String inLowerLabelKey)
  	{
  		setLayout(new BorderLayout());
  		add(new JLabel(I18nManager.getText(inTopLabelKey)), BorderLayout.NORTH);
  		// panel for the radio buttons
  		JPanel gridPanel = new JPanel();
  		gridPanel.setLayout(new GridLayout(0, 3, 15, 3));
  		final String[] keys = {"beginning", "middle", "end"};
  		ButtonGroup group = new ButtonGroup();
  		for (int i=0; i<3; i++)
  		{
  			_radios[i] = new JRadioButton(I18nManager.getText("dialog.correlate.timestamp." + keys[i]));
  			group.add(_radios[i]);
  			gridPanel.add(_radios[i]);
  		}
  		_radios[0].setSelected(true);
  		add(gridPanel, BorderLayout.CENTER);
  		if (inLowerLabelKey != null) {
  			add(new JLabel(I18nManager.getText(inLowerLabelKey)), BorderLayout.SOUTH);
  		}
  	}
  
  	/**
  	 * Get the option selected by the user
  	 * @return 0 for beginning, 1 for middle or 2 for end
  	 */
  	public int getSelectedOption()
  	{
  		for (int i=0; i<_radios.length; i++)
  			if (_radios[i].isSelected()) {return i;}
  		return 0;
  	}
  }
  