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;
}
}