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