| 1 | package panels;
|
|---|
| 2 |
|
|---|
| 3 | import javax.swing.*;
|
|---|
| 4 |
|
|---|
| 5 | import java.awt.*;
|
|---|
| 6 | import java.awt.event.*;
|
|---|
| 7 | import java.util.EnumMap;
|
|---|
| 8 |
|
|---|
| 9 | import messages.Messages;
|
|---|
| 10 | import smed.SmedAction;
|
|---|
| 11 | import seamarks.SeaMark.*;
|
|---|
| 12 |
|
|---|
| 13 | public class PanelFog extends JPanel {
|
|---|
| 14 |
|
|---|
| 15 | private SmedAction dlg;
|
|---|
| 16 | private ButtonGroup fogButtons = new ButtonGroup();
|
|---|
| 17 | public JRadioButton noFogButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/OffButton.png")));
|
|---|
| 18 | public JRadioButton yesFogButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogYesButton.png")));
|
|---|
| 19 | public JRadioButton hornButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogHornButton.png")));
|
|---|
| 20 | public JRadioButton sirenButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogSirenButton.png")));
|
|---|
| 21 | public JRadioButton diaButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogDiaButton.png")));
|
|---|
| 22 | public JRadioButton bellButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogBellButton.png")));
|
|---|
| 23 | public JRadioButton whisButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogWhisButton.png")));
|
|---|
| 24 | public JRadioButton gongButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogGongButton.png")));
|
|---|
| 25 | public JRadioButton explosButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogExplosButton.png")));
|
|---|
| 26 | private EnumMap<Fog, JRadioButton> fogs = new EnumMap<>(Fog.class);
|
|---|
| 27 | private ActionListener alFog = new ActionListener() {
|
|---|
| 28 | public void actionPerformed(java.awt.event.ActionEvent e) {
|
|---|
| 29 | for (Fog fog : fogs.keySet()) {
|
|---|
| 30 | JRadioButton button = fogs.get(fog);
|
|---|
| 31 | if (button.isSelected()) {
|
|---|
| 32 | dlg.panelMain.mark.setFogSound(fog);
|
|---|
| 33 | button.setBorderPainted(true);
|
|---|
| 34 | } else
|
|---|
| 35 | button.setBorderPainted(false);
|
|---|
| 36 | }
|
|---|
| 37 | }
|
|---|
| 38 | };
|
|---|
| 39 | public JLabel groupLabel;
|
|---|
| 40 | public JTextField groupBox;
|
|---|
| 41 | private FocusListener flGroup = new FocusAdapter() {
|
|---|
| 42 | public void focusLost(java.awt.event.FocusEvent e) {
|
|---|
| 43 | dlg.panelMain.mark.setFogGroup(groupBox.getText());
|
|---|
| 44 | }
|
|---|
| 45 | };
|
|---|
| 46 | public JLabel periodLabel;
|
|---|
| 47 | public JTextField periodBox;
|
|---|
| 48 | private FocusListener flPeriod = new FocusAdapter() {
|
|---|
| 49 | public void focusLost(java.awt.event.FocusEvent e) {
|
|---|
| 50 | dlg.panelMain.mark.setFogPeriod(periodBox.getText());
|
|---|
| 51 | }
|
|---|
| 52 | };
|
|---|
| 53 | public JLabel seqLabel;
|
|---|
| 54 | public JTextField seqBox;
|
|---|
| 55 | private FocusListener flSeq = new FocusAdapter() {
|
|---|
| 56 | public void focusLost(java.awt.event.FocusEvent e) {
|
|---|
| 57 | dlg.panelMain.mark.setFogSequence(seqBox.getText());
|
|---|
| 58 | }
|
|---|
| 59 | };
|
|---|
| 60 | public JLabel rangeLabel;
|
|---|
| 61 | public JTextField rangeBox;
|
|---|
| 62 | private FocusListener flRange = new FocusAdapter() {
|
|---|
| 63 | public void focusLost(java.awt.event.FocusEvent e) {
|
|---|
| 64 | dlg.panelMain.mark.setFogRange(rangeBox.getText());
|
|---|
| 65 | }
|
|---|
| 66 | };
|
|---|
| 67 |
|
|---|
| 68 | public PanelFog(SmedAction dia) {
|
|---|
| 69 | dlg = dia;
|
|---|
| 70 | setLayout(null);
|
|---|
| 71 | add(getFogButton(noFogButton, 0, 2, 27, 27, "NoFog", Fog.NOFOG));
|
|---|
| 72 | add(getFogButton(yesFogButton, 0, 32, 27, 27, "FogSignal", Fog.FOGSIG));
|
|---|
| 73 | add(getFogButton(hornButton, 0, 62, 27, 27, "Horn", Fog.HORN));
|
|---|
| 74 | add(getFogButton(sirenButton, 0, 92, 27, 27, "Siren", Fog.SIREN));
|
|---|
| 75 | add(getFogButton(gongButton, 0, 122, 27, 27, "Gong", Fog.GONG));
|
|---|
| 76 | add(getFogButton(diaButton, 30, 2, 27, 27, "Diaphone", Fog.DIA));
|
|---|
| 77 | add(getFogButton(bellButton, 30, 32, 27, 27, "Bell", Fog.BELL));
|
|---|
| 78 | add(getFogButton(whisButton, 30, 62, 27, 27, "Whistle", Fog.WHIS));
|
|---|
| 79 | add(getFogButton(explosButton, 30, 92, 27, 27, "Explosion", Fog.EXPLOS));
|
|---|
| 80 |
|
|---|
| 81 | groupLabel = new JLabel(Messages.getString("Group"), SwingConstants.CENTER);
|
|---|
| 82 | groupLabel.setBounds(new Rectangle(75, 0, 100, 20));
|
|---|
| 83 | add(groupLabel);
|
|---|
| 84 | groupBox = new JTextField();
|
|---|
| 85 | groupBox.setBounds(new Rectangle(100, 20, 50, 20));
|
|---|
| 86 | groupBox.setHorizontalAlignment(SwingConstants.CENTER);
|
|---|
| 87 | add(groupBox);
|
|---|
| 88 | groupBox.addFocusListener(flGroup);
|
|---|
| 89 |
|
|---|
| 90 | periodLabel = new JLabel(Messages.getString("Period"), SwingConstants.CENTER);
|
|---|
| 91 | periodLabel.setBounds(new Rectangle(75, 40, 100, 20));
|
|---|
| 92 | add(periodLabel);
|
|---|
| 93 | periodBox = new JTextField();
|
|---|
| 94 | periodBox.setBounds(new Rectangle(100, 60, 50, 20));
|
|---|
| 95 | periodBox.setHorizontalAlignment(SwingConstants.CENTER);
|
|---|
| 96 | add(periodBox);
|
|---|
| 97 | periodBox.addFocusListener(flPeriod);
|
|---|
| 98 |
|
|---|
| 99 | seqLabel = new JLabel(Messages.getString("Sequence"), SwingConstants.CENTER);
|
|---|
| 100 | seqLabel.setBounds(new Rectangle(75, 80, 100, 20));
|
|---|
| 101 | add(seqLabel);
|
|---|
| 102 | seqBox = new JTextField();
|
|---|
| 103 | seqBox.setBounds(new Rectangle(100, 100, 50, 20));
|
|---|
| 104 | seqBox.setHorizontalAlignment(SwingConstants.CENTER);
|
|---|
| 105 | add(seqBox);
|
|---|
| 106 | seqBox.addFocusListener(flSeq);
|
|---|
| 107 |
|
|---|
| 108 | rangeLabel = new JLabel(Messages.getString("Range"), SwingConstants.CENTER);
|
|---|
| 109 | rangeLabel.setBounds(new Rectangle(75, 120, 100, 20));
|
|---|
| 110 | add(rangeLabel);
|
|---|
| 111 | rangeBox = new JTextField();
|
|---|
| 112 | rangeBox.setBounds(new Rectangle(100, 140, 50, 20));
|
|---|
| 113 | rangeBox.setHorizontalAlignment(SwingConstants.CENTER);
|
|---|
| 114 | add(rangeBox);
|
|---|
| 115 | rangeBox.addFocusListener(flRange);
|
|---|
| 116 |
|
|---|
| 117 | }
|
|---|
| 118 |
|
|---|
| 119 | public void syncPanel() {
|
|---|
| 120 | for (Fog fog : fogs.keySet()) {
|
|---|
| 121 | JRadioButton button = fogs.get(fog);
|
|---|
| 122 | button.setBorderPainted(dlg.panelMain.mark.getFogSound() == fog);
|
|---|
| 123 | }
|
|---|
| 124 | groupBox.setText(dlg.panelMain.mark.getFogGroup());
|
|---|
| 125 | seqBox.setText(dlg.panelMain.mark.getFogSequence());
|
|---|
| 126 | periodBox.setText(dlg.panelMain.mark.getFogPeriod());
|
|---|
| 127 | rangeBox.setText(dlg.panelMain.mark.getFogRange());
|
|---|
| 128 | }
|
|---|
| 129 |
|
|---|
| 130 | private JRadioButton getFogButton(JRadioButton button, int x, int y, int w, int h, String tip, Fog fog) {
|
|---|
| 131 | button.setBounds(new Rectangle(x, y, w, h));
|
|---|
| 132 | button.setBorder(BorderFactory.createLoweredBevelBorder());
|
|---|
| 133 | button.setToolTipText(Messages.getString(tip));
|
|---|
| 134 | button.addActionListener(alFog);
|
|---|
| 135 | fogButtons.add(button);
|
|---|
| 136 | fogs.put(fog, button);
|
|---|
| 137 | return button;
|
|---|
| 138 | }
|
|---|
| 139 |
|
|---|
| 140 | }
|
|---|