]> gitweb.fperrin.net Git - GpsPrune.git/blob - tim/prune/correlate/AudioTimestampSelector.java
ee0ce0d1e5099517f921a6112240f7304d0e8df2
[GpsPrune.git] / tim / prune / correlate / AudioTimestampSelector.java
1 package tim.prune.correlate;
2
3 import java.awt.BorderLayout;
4 import java.awt.GridLayout;
5
6 import javax.swing.BorderFactory;
7 import javax.swing.ButtonGroup;
8 import javax.swing.JLabel;
9 import javax.swing.JPanel;
10 import javax.swing.JRadioButton;
11 import javax.swing.border.EtchedBorder;
12
13 import tim.prune.I18nManager;
14
15 /**
16  * GUI element to allow the selection of timestamp options
17  * for audio file correlation
18  */
19 public class AudioTimestampSelector extends JPanel
20 {
21         /** Array of radio buttons */
22         private JRadioButton[] _radios = new JRadioButton[3];
23
24
25         /**
26          * Constructor
27          * @param inTopLabelKey key for description label at top
28          * @param inLowerLabelKey key for description label at bottom, if any
29          */
30         public AudioTimestampSelector(String inTopLabelKey, String inLowerLabelKey)
31         {
32                 createComponents(inTopLabelKey, inLowerLabelKey);
33                 setBorder(BorderFactory.createCompoundBorder(
34                         BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), BorderFactory.createEmptyBorder(4, 4, 4, 4))
35                 );
36         }
37
38         /**
39          * Create the GUI components
40          * @param inTopLabelKey key for description label at top
41          * @param inLowerLabelKey key for description label at bottom, if any
42          */
43         private void createComponents(String inTopLabelKey, String inLowerLabelKey)
44         {
45                 setLayout(new BorderLayout());
46                 add(new JLabel(I18nManager.getText(inTopLabelKey)), BorderLayout.NORTH);
47                 // panel for the radio buttons
48                 JPanel gridPanel = new JPanel();
49                 gridPanel.setLayout(new GridLayout(0, 3, 15, 3));
50                 final String[] keys = {"beginning", "middle", "end"};
51                 ButtonGroup group = new ButtonGroup();
52                 for (int i=0; i<3; i++)
53                 {
54                         _radios[i] = new JRadioButton(I18nManager.getText("dialog.correlate.timestamp." + keys[i]));
55                         group.add(_radios[i]);
56                         gridPanel.add(_radios[i]);
57                 }
58                 _radios[0].setSelected(true);
59                 add(gridPanel, BorderLayout.CENTER);
60                 if (inLowerLabelKey != null) {
61                         add(new JLabel(I18nManager.getText(inLowerLabelKey)), BorderLayout.SOUTH);
62                 }
63         }
64
65         /**
66          * Get the option selected by the user
67          * @return 0 for beginning, 1 for middle or 2 for end
68          */
69         public int getSelectedOption()
70         {
71                 for (int i=0; i<_radios.length; i++)
72                         if (_radios[i].isSelected()) {return i;}
73                 return 0;
74         }
75 }