Ignore:
Timestamp:
2016-08-04T02:27:43+02:00 (10 years ago)
Author:
donvip
Message:

code style

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed/src/panels/PanelMain.java

    r30295 r32767  
    33import static org.openstreetmap.josm.tools.I18n.tr;
    44
    5 import java.awt.*;
    6 import java.awt.event.*;
    7 import javax.swing.*;
     5import java.awt.Color;
     6import java.awt.Insets;
     7import java.awt.Rectangle;
     8import java.awt.event.ActionEvent;
     9import java.awt.event.ActionListener;
     10import java.awt.event.FocusEvent;
     11import java.awt.event.FocusListener;
     12
     13import javax.swing.BorderFactory;
     14import javax.swing.ButtonGroup;
     15import javax.swing.ImageIcon;
     16import javax.swing.JButton;
     17import javax.swing.JLabel;
     18import javax.swing.JPanel;
     19import javax.swing.JRadioButton;
     20import javax.swing.JTextField;
     21import javax.swing.SwingConstants;
    822
    923import messages.Messages;
     24import seamarks.SeaMark;
    1025import smed.SmedAction;
    11 import seamarks.SeaMark;
    1226
    1327public class PanelMain extends JPanel {
    1428
    15         private SmedAction dlg;
    16         public SeaMark mark = null;
    17         public PanelChan panelChan = null;
    18         public PanelHaz panelHaz = null;
    19         public PanelSpec panelSpec = null;
    20         public PanelLights panelLights = null;
    21         public PanelMore panelMore = null;
    22         public PanelTop panelTop = null;
    23         public PanelFog panelFog = null;
    24         public PanelRadar panelRadar = null;
    25         public PanelLit panelLit = null;
    26         public JLabel nameLabel = null;
    27         public JTextField nameBox = null;
    28         public static JTextField messageBar = null;
    29         private FocusListener flName = new FocusListener() {
    30                 public void focusLost(java.awt.event.FocusEvent e) {
    31                         mark.setName(nameBox.getText());
    32                 }
    33                 public void focusGained(java.awt.event.FocusEvent e) {
    34                 }
    35         };
    36         public JButton saveButton = null;
    37         private ActionListener alSave = new ActionListener() {
    38                 public void actionPerformed(java.awt.event.ActionEvent e) {
    39                         mark.saveSign(dlg.node);
    40                 }
    41         };
    42         public JButton moreButton = null;
    43         private ActionListener alMore = new ActionListener() {
    44                 public void actionPerformed(java.awt.event.ActionEvent e) {
    45                         if (panelMore.isVisible()) {
    46                                 moreButton.setText(">>");
    47                                 panelMore.setVisible(false);
    48                                 topButton.setEnabled(true);
    49                                 radButton.setEnabled(true);
    50                                 fogButton.setEnabled(true);
    51                                 litButton.setEnabled(true);
    52                         } else {
    53                                 panelMore.setVisible(true);
    54                                 moreButton.setText("<<");
    55                                 miscButtons.clearSelection();
    56                                 panelTop.setVisible(false);
    57                                 topButton.setBorderPainted(false);
    58                                 topButton.setEnabled(false);
    59                                 panelRadar.setVisible(false);
    60                                 radButton.setBorderPainted(false);
    61                                 radButton.setEnabled(false);
    62                                 panelFog.setVisible(false);
    63                                 fogButton.setBorderPainted(false);
    64                                 fogButton.setEnabled(false);
    65                                 panelLit.setVisible(false);
    66                                 litButton.setBorderPainted(false);
    67                                 litButton.setEnabled(false);
    68                         }
    69                 }
    70         };
    71         public ButtonGroup typeButtons = null;
    72         public JRadioButton chanButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/ChanButton.png")));
    73         public JRadioButton hazButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/HazButton.png")));
    74         public JRadioButton specButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SpecButton.png")));
    75         public JRadioButton lightsButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/LightsButton.png")));
    76         private ActionListener alType = new ActionListener() {
    77                 public void actionPerformed(java.awt.event.ActionEvent e) {
    78                         if (chanButton.isSelected()) {
    79                                 chanButton.setBorderPainted(true);
    80                                 panelChan.syncPanel();
    81                                 panelChan.setVisible(true);
    82                         } else {
    83                                 chanButton.setBorderPainted(false);
    84                                 panelChan.setVisible(false);
    85                         }
    86                         if (hazButton.isSelected()) {
    87                                 hazButton.setBorderPainted(true);
    88                                 panelHaz.syncPanel();
    89                                 panelHaz.setVisible(true);
    90                         } else {
    91                                 hazButton.setBorderPainted(false);
    92                                 panelHaz.setVisible(false);
    93                         }
    94                         if (specButton.isSelected()) {
    95                                 specButton.setBorderPainted(true);
    96                                 panelSpec.syncPanel();
    97                                 panelSpec.setVisible(true);
    98                         } else {
    99                                 specButton.setBorderPainted(false);
    100                                 panelSpec.setVisible(false);
    101                         }
    102                         if (lightsButton.isSelected()) {
    103                                 lightsButton.setBorderPainted(true);
    104                                 panelLights.syncPanel();
    105                                 panelLights.setVisible(true);
    106                         } else {
    107                                 lightsButton.setBorderPainted(false);
    108                                 panelLights.setVisible(false);
    109                         }
    110                 }
    111         };
    112         private ButtonGroup miscButtons = null;
    113         public JRadioButton topButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/TopButton.png")));
    114         public JRadioButton fogButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogButton.png")));
    115         public JRadioButton radButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/RadarButton.png")));
    116         public JRadioButton litButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/LitButton.png")));
    117         private ActionListener alMisc = new ActionListener() {
    118                 public void actionPerformed(java.awt.event.ActionEvent e) {
    119                         if (topButton.isSelected()) {
    120                                 moreButton.setText(">>");
    121                                 panelMore.setVisible(false);
    122                                 topButton.setBorderPainted(true);
    123                                 panelTop.setVisible(true);
    124                                 panelTop.syncPanel();
    125                         } else {
    126                                 topButton.setBorderPainted(false);
    127                                 panelTop.setVisible(false);
    128                         }
    129                         if (fogButton.isSelected()) {
    130                                 moreButton.setText(">>");
    131                                 panelMore.setVisible(false);
    132                                 fogButton.setBorderPainted(true);
    133                                 panelFog.setVisible(true);
    134                                 panelFog.syncPanel();
    135                         } else {
    136                                 fogButton.setBorderPainted(false);
    137                                 panelFog.setVisible(false);
    138                         }
    139                         if (radButton.isSelected()) {
    140                                 moreButton.setText(">>");
    141                                 panelMore.setVisible(false);
    142                                 radButton.setBorderPainted(true);
    143                                 panelRadar.setVisible(true);
    144                                 panelRadar.syncPanel();
    145                         } else {
    146                                 radButton.setBorderPainted(false);
    147                                 panelRadar.setVisible(false);
    148                         }
    149                         if (litButton.isSelected()) {
    150                                 moreButton.setText(">>");
    151                                 panelMore.setVisible(false);
    152                                 litButton.setBorderPainted(true);
    153                                 panelLit.setVisible(true);
    154                                 panelLit.syncPanel();
    155                         } else {
    156                                 litButton.setBorderPainted(false);
    157                                 panelLit.setVisible(false);
    158                         }
    159                 }
    160         };
    161        
    162         public PanelMain(SmedAction dia) {
    163 
    164                 dlg = dia;
    165                 setLayout(null);
    166                 mark = new SeaMark(dlg);
    167                 mark.setBounds(new Rectangle(235, 0, 165, 160));
    168                 add(mark);
    169                 panelChan = new PanelChan(dlg);
    170                 panelChan.setBounds(new Rectangle(65, 0, 170, 160));
    171                 panelChan.setVisible(false);
    172                 add(panelChan);
    173                 panelHaz = new PanelHaz(dlg);
    174                 panelHaz.setBounds(new Rectangle(65, 0, 170, 160));
    175                 panelHaz.setVisible(false);
    176                 add(panelHaz);
    177                 panelSpec = new PanelSpec(dlg);
    178                 panelSpec.setBounds(new Rectangle(65, 0, 170, 160));
    179                 panelSpec.setVisible(false);
    180                 add(panelSpec);
    181                 panelLights = new PanelLights(dlg);
    182                 panelLights.setBounds(new Rectangle(65, 0, 170, 160));
    183                 panelLights.setVisible(false);
    184                 add(panelLights);
    185                 panelMore = new PanelMore(dlg);
    186                 panelMore.setBounds(new Rectangle(40, 165, 360, 160));
    187                 panelMore.setVisible(false);
    188                 add(panelMore);
    189                 panelTop = new PanelTop(dlg);
    190                 panelTop.setBounds(new Rectangle(40, 165, 360, 160));
    191                 panelTop.setVisible(false);
    192                 add(panelTop);
    193                 panelFog = new PanelFog(dlg);
    194                 panelFog.setBounds(new Rectangle(40, 165, 360, 160));
    195                 panelFog.setVisible(false);
    196                 add(panelFog);
    197                 panelRadar = new PanelRadar(dlg);
    198                 panelRadar.setBounds(new Rectangle(40, 165, 360, 160));
    199                 panelRadar.setVisible(false);
    200                 add(panelRadar);
    201                 panelLit = new PanelLit(dlg);
    202                 panelLit.setBounds(new Rectangle(40, 165, 360, 160));
    203                 panelLit.setVisible(false);
    204                 add(panelLit);
    205 
    206                 add(getButton(chanButton, 0, 0, 62, 40, "Chan"), null);
    207                 add(getButton(hazButton, 0, 40, 62, 40, "Haz"), null);
    208                 add(getButton(specButton, 0, 80, 62, 40, "Spec"), null);
    209                 add(getButton(lightsButton, 0, 120, 62, 40, "Lights"), null);
    210                 typeButtons = new ButtonGroup();
    211                 typeButtons.add(chanButton);
    212                 typeButtons.add(hazButton);
    213                 typeButtons.add(specButton);
    214                 typeButtons.add(lightsButton);
    215                 chanButton.addActionListener(alType);
    216                 hazButton.addActionListener(alType);
    217                 specButton.addActionListener(alType);
    218                 lightsButton.addActionListener(alType);
    219 
    220                 add(getButton(topButton, 0, 185, 34, 32, "Topmarks"));
    221                 add(getButton(fogButton, 0, 220, 34, 32, "FogSignals"));
    222                 add(getButton(radButton, 0, 255, 34, 32, "Radar"));
    223                 add(getButton(litButton, 0, 290, 34, 32, "Lit"));
    224                 miscButtons = new ButtonGroup();
    225                 miscButtons.add(topButton);
    226                 miscButtons.add(fogButton);
    227                 miscButtons.add(radButton);
    228                 miscButtons.add(litButton);
    229                 topButton.addActionListener(alMisc);
    230                 fogButton.addActionListener(alMisc);
    231                 radButton.addActionListener(alMisc);
    232                 litButton.addActionListener(alMisc);
    233 
    234                 nameLabel = new JLabel();
    235                 nameLabel.setBounds(new Rectangle(5, 329, 60, 20));
    236                 nameLabel.setText(tr("Name:"));
    237                 add(nameLabel);
    238                 nameBox = new JTextField();
    239                 nameBox.setBounds(new Rectangle(60, 330, 200, 20));
    240                 nameBox.setHorizontalAlignment(SwingConstants.CENTER);
    241                 add(nameBox);
    242                 nameBox.addFocusListener(flName);
    243 
    244                 saveButton = new JButton();
    245                 saveButton.setBounds(new Rectangle(285, 330, 100, 20));
    246                 saveButton.setText(tr("Save"));
    247                 add(saveButton);
    248                 saveButton.addActionListener(alSave);
    249 
    250                 moreButton = new JButton();
    251                 moreButton.setBounds(new Rectangle(0, 165, 34, 15));
    252                 moreButton.setMargin(new Insets(0, 0, 0, 0));
    253                 moreButton.setText(">>");
    254                 add(moreButton);
    255                 moreButton.addActionListener(alMore);
    256 
    257             messageBar = new JTextField();
    258             messageBar.setBounds(10, 355, 380, 20);
    259             messageBar.setEditable(false);
    260             messageBar.setBackground(Color.WHITE);
    261             add(messageBar);
    262         }
    263 
    264         public void syncPanel() {
    265                 typeButtons.clearSelection();
    266                 chanButton.setBorderPainted(false);
    267                 chanButton.setEnabled(false);
    268                 hazButton.setBorderPainted(false);
    269                 hazButton.setEnabled(false);
    270                 specButton.setBorderPainted(false);
    271                 specButton.setEnabled(false);
    272                 lightsButton.setBorderPainted(false);
    273                 lightsButton.setEnabled(false);
    274                 miscButtons.clearSelection();
    275                 topButton.setEnabled(false);
    276                 topButton.setBorderPainted(false);
    277                 fogButton.setEnabled(false);
    278                 fogButton.setBorderPainted(false);
    279                 radButton.setEnabled(false);
    280                 radButton.setBorderPainted(false);
    281                 litButton.setEnabled(false);
    282                 litButton.setBorderPainted(false);
    283                 saveButton.setEnabled(false);
    284                 moreButton.setVisible(false);
    285                 moreButton.setText(">>");
    286                 moreButton.setSelected(false);
    287                 panelChan.setVisible(false);
    288                 panelHaz.setVisible(false);
    289                 panelSpec.setVisible(false);
    290                 panelLights.setVisible(false);
    291                 panelMore.setVisible(false);
    292                 panelTop.setVisible(false);
    293                 panelFog.setVisible(false);
    294                 panelRadar.setVisible(false);
    295                 panelLit.setVisible(false);
    296                 nameBox.setEnabled(false);
    297                 if (mark != null) {
    298                         nameBox.setEnabled(true);
    299                         chanButton.setEnabled(true);
    300                         hazButton.setEnabled(true);
    301                         specButton.setEnabled(true);
    302                         lightsButton.setEnabled(true);
    303                         nameBox.setText(mark.getName());
    304                         switch (SeaMark.GrpMAP.get(mark.getObject())) {
    305                         case LAT:
    306                         case SAW:
    307                                 chanButton.setBorderPainted(true);
    308                                 panelChan.setVisible(true);
    309                                 panelChan.syncPanel();
    310                                 break;
    311                         case CAR:
    312                         case ISD:
    313                                 hazButton.setBorderPainted(true);
    314                                 panelHaz.setVisible(true);
    315                                 panelHaz.syncPanel();
    316                                 break;
    317                         case SPP:
    318                                 specButton.setBorderPainted(true);
    319                                 panelSpec.setVisible(true);
    320                                 panelSpec.syncPanel();
    321                                 break;
    322                         case LGT:
    323                         case STN:
    324                         case PLF:
    325                                 lightsButton.setBorderPainted(true);
    326                                 panelLights.setVisible(true);
    327                                 panelLights.syncPanel();
    328                                 break;
    329                         }
    330                         panelMore.syncPanel();
    331                         panelTop.syncPanel();
    332                         panelFog.syncPanel();
    333                         panelRadar.syncPanel();
    334                         panelLit.syncPanel();
    335                 }
    336         }
    337 
    338         private JRadioButton getButton(JRadioButton button, int x, int y, int w, int h, String tip) {
    339                 button.setBounds(new Rectangle(x, y, w, h));
    340                 button.setBorder(BorderFactory.createLoweredBevelBorder());
    341                 button.setToolTipText(Messages.getString(tip));
    342                 return button;
    343         }
     29    private SmedAction dlg;
     30    public SeaMark mark = null;
     31    public PanelChan panelChan = null;
     32    public PanelHaz panelHaz = null;
     33    public PanelSpec panelSpec = null;
     34    public PanelLights panelLights = null;
     35    public PanelMore panelMore = null;
     36    public PanelTop panelTop = null;
     37    public PanelFog panelFog = null;
     38    public PanelRadar panelRadar = null;
     39    public PanelLit panelLit = null;
     40    public JLabel nameLabel = null;
     41    public JTextField nameBox = null;
     42    public static JTextField messageBar = null;
     43    private FocusListener flName = new FocusListener() {
     44        @Override
     45        public void focusLost(FocusEvent e) {
     46            mark.setName(nameBox.getText());
     47        }
     48        @Override
     49        public void focusGained(FocusEvent e) {
     50        }
     51    };
     52    public JButton saveButton = null;
     53    private ActionListener alSave = new ActionListener() {
     54        @Override
     55        public void actionPerformed(ActionEvent e) {
     56            mark.saveSign(dlg.node);
     57        }
     58    };
     59    public JButton moreButton = null;
     60    private ActionListener alMore = new ActionListener() {
     61        @Override
     62        public void actionPerformed(ActionEvent e) {
     63            if (panelMore.isVisible()) {
     64                moreButton.setText(">>");
     65                panelMore.setVisible(false);
     66                topButton.setEnabled(true);
     67                radButton.setEnabled(true);
     68                fogButton.setEnabled(true);
     69                litButton.setEnabled(true);
     70            } else {
     71                panelMore.setVisible(true);
     72                moreButton.setText("<<");
     73                miscButtons.clearSelection();
     74                panelTop.setVisible(false);
     75                topButton.setBorderPainted(false);
     76                topButton.setEnabled(false);
     77                panelRadar.setVisible(false);
     78                radButton.setBorderPainted(false);
     79                radButton.setEnabled(false);
     80                panelFog.setVisible(false);
     81                fogButton.setBorderPainted(false);
     82                fogButton.setEnabled(false);
     83                panelLit.setVisible(false);
     84                litButton.setBorderPainted(false);
     85                litButton.setEnabled(false);
     86            }
     87        }
     88    };
     89    public ButtonGroup typeButtons = null;
     90    public JRadioButton chanButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/ChanButton.png")));
     91    public JRadioButton hazButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/HazButton.png")));
     92    public JRadioButton specButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SpecButton.png")));
     93    public JRadioButton lightsButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/LightsButton.png")));
     94    private ActionListener alType = new ActionListener() {
     95        @Override
     96        public void actionPerformed(ActionEvent e) {
     97            if (chanButton.isSelected()) {
     98                chanButton.setBorderPainted(true);
     99                panelChan.syncPanel();
     100                panelChan.setVisible(true);
     101            } else {
     102                chanButton.setBorderPainted(false);
     103                panelChan.setVisible(false);
     104            }
     105            if (hazButton.isSelected()) {
     106                hazButton.setBorderPainted(true);
     107                panelHaz.syncPanel();
     108                panelHaz.setVisible(true);
     109            } else {
     110                hazButton.setBorderPainted(false);
     111                panelHaz.setVisible(false);
     112            }
     113            if (specButton.isSelected()) {
     114                specButton.setBorderPainted(true);
     115                panelSpec.syncPanel();
     116                panelSpec.setVisible(true);
     117            } else {
     118                specButton.setBorderPainted(false);
     119                panelSpec.setVisible(false);
     120            }
     121            if (lightsButton.isSelected()) {
     122                lightsButton.setBorderPainted(true);
     123                panelLights.syncPanel();
     124                panelLights.setVisible(true);
     125            } else {
     126                lightsButton.setBorderPainted(false);
     127                panelLights.setVisible(false);
     128            }
     129        }
     130    };
     131    private ButtonGroup miscButtons = null;
     132    public JRadioButton topButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/TopButton.png")));
     133    public JRadioButton fogButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FogButton.png")));
     134    public JRadioButton radButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/RadarButton.png")));
     135    public JRadioButton litButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/LitButton.png")));
     136    private ActionListener alMisc = new ActionListener() {
     137        @Override
     138        public void actionPerformed(ActionEvent e) {
     139            if (topButton.isSelected()) {
     140                moreButton.setText(">>");
     141                panelMore.setVisible(false);
     142                topButton.setBorderPainted(true);
     143                panelTop.setVisible(true);
     144                panelTop.syncPanel();
     145            } else {
     146                topButton.setBorderPainted(false);
     147                panelTop.setVisible(false);
     148            }
     149            if (fogButton.isSelected()) {
     150                moreButton.setText(">>");
     151                panelMore.setVisible(false);
     152                fogButton.setBorderPainted(true);
     153                panelFog.setVisible(true);
     154                panelFog.syncPanel();
     155            } else {
     156                fogButton.setBorderPainted(false);
     157                panelFog.setVisible(false);
     158            }
     159            if (radButton.isSelected()) {
     160                moreButton.setText(">>");
     161                panelMore.setVisible(false);
     162                radButton.setBorderPainted(true);
     163                panelRadar.setVisible(true);
     164                panelRadar.syncPanel();
     165            } else {
     166                radButton.setBorderPainted(false);
     167                panelRadar.setVisible(false);
     168            }
     169            if (litButton.isSelected()) {
     170                moreButton.setText(">>");
     171                panelMore.setVisible(false);
     172                litButton.setBorderPainted(true);
     173                panelLit.setVisible(true);
     174                panelLit.syncPanel();
     175            } else {
     176                litButton.setBorderPainted(false);
     177                panelLit.setVisible(false);
     178            }
     179        }
     180    };
     181
     182    public PanelMain(SmedAction dia) {
     183
     184        dlg = dia;
     185        setLayout(null);
     186        mark = new SeaMark(dlg);
     187        mark.setBounds(new Rectangle(235, 0, 165, 160));
     188        add(mark);
     189        panelChan = new PanelChan(dlg);
     190        panelChan.setBounds(new Rectangle(65, 0, 170, 160));
     191        panelChan.setVisible(false);
     192        add(panelChan);
     193        panelHaz = new PanelHaz(dlg);
     194        panelHaz.setBounds(new Rectangle(65, 0, 170, 160));
     195        panelHaz.setVisible(false);
     196        add(panelHaz);
     197        panelSpec = new PanelSpec(dlg);
     198        panelSpec.setBounds(new Rectangle(65, 0, 170, 160));
     199        panelSpec.setVisible(false);
     200        add(panelSpec);
     201        panelLights = new PanelLights(dlg);
     202        panelLights.setBounds(new Rectangle(65, 0, 170, 160));
     203        panelLights.setVisible(false);
     204        add(panelLights);
     205        panelMore = new PanelMore(dlg);
     206        panelMore.setBounds(new Rectangle(40, 165, 360, 160));
     207        panelMore.setVisible(false);
     208        add(panelMore);
     209        panelTop = new PanelTop(dlg);
     210        panelTop.setBounds(new Rectangle(40, 165, 360, 160));
     211        panelTop.setVisible(false);
     212        add(panelTop);
     213        panelFog = new PanelFog(dlg);
     214        panelFog.setBounds(new Rectangle(40, 165, 360, 160));
     215        panelFog.setVisible(false);
     216        add(panelFog);
     217        panelRadar = new PanelRadar(dlg);
     218        panelRadar.setBounds(new Rectangle(40, 165, 360, 160));
     219        panelRadar.setVisible(false);
     220        add(panelRadar);
     221        panelLit = new PanelLit(dlg);
     222        panelLit.setBounds(new Rectangle(40, 165, 360, 160));
     223        panelLit.setVisible(false);
     224        add(panelLit);
     225
     226        add(getButton(chanButton, 0, 0, 62, 40, "Chan"), null);
     227        add(getButton(hazButton, 0, 40, 62, 40, "Haz"), null);
     228        add(getButton(specButton, 0, 80, 62, 40, "Spec"), null);
     229        add(getButton(lightsButton, 0, 120, 62, 40, "Lights"), null);
     230        typeButtons = new ButtonGroup();
     231        typeButtons.add(chanButton);
     232        typeButtons.add(hazButton);
     233        typeButtons.add(specButton);
     234        typeButtons.add(lightsButton);
     235        chanButton.addActionListener(alType);
     236        hazButton.addActionListener(alType);
     237        specButton.addActionListener(alType);
     238        lightsButton.addActionListener(alType);
     239
     240        add(getButton(topButton, 0, 185, 34, 32, "Topmarks"));
     241        add(getButton(fogButton, 0, 220, 34, 32, "FogSignals"));
     242        add(getButton(radButton, 0, 255, 34, 32, "Radar"));
     243        add(getButton(litButton, 0, 290, 34, 32, "Lit"));
     244        miscButtons = new ButtonGroup();
     245        miscButtons.add(topButton);
     246        miscButtons.add(fogButton);
     247        miscButtons.add(radButton);
     248        miscButtons.add(litButton);
     249        topButton.addActionListener(alMisc);
     250        fogButton.addActionListener(alMisc);
     251        radButton.addActionListener(alMisc);
     252        litButton.addActionListener(alMisc);
     253
     254        nameLabel = new JLabel();
     255        nameLabel.setBounds(new Rectangle(5, 329, 60, 20));
     256        nameLabel.setText(tr("Name:"));
     257        add(nameLabel);
     258        nameBox = new JTextField();
     259        nameBox.setBounds(new Rectangle(60, 330, 200, 20));
     260        nameBox.setHorizontalAlignment(SwingConstants.CENTER);
     261        add(nameBox);
     262        nameBox.addFocusListener(flName);
     263
     264        saveButton = new JButton();
     265        saveButton.setBounds(new Rectangle(285, 330, 100, 20));
     266        saveButton.setText(tr("Save"));
     267        add(saveButton);
     268        saveButton.addActionListener(alSave);
     269
     270        moreButton = new JButton();
     271        moreButton.setBounds(new Rectangle(0, 165, 34, 15));
     272        moreButton.setMargin(new Insets(0, 0, 0, 0));
     273        moreButton.setText(">>");
     274        add(moreButton);
     275        moreButton.addActionListener(alMore);
     276
     277        messageBar = new JTextField();
     278        messageBar.setBounds(10, 355, 380, 20);
     279        messageBar.setEditable(false);
     280        messageBar.setBackground(Color.WHITE);
     281        add(messageBar);
     282    }
     283
     284    public void syncPanel() {
     285        typeButtons.clearSelection();
     286        chanButton.setBorderPainted(false);
     287        chanButton.setEnabled(false);
     288        hazButton.setBorderPainted(false);
     289        hazButton.setEnabled(false);
     290        specButton.setBorderPainted(false);
     291        specButton.setEnabled(false);
     292        lightsButton.setBorderPainted(false);
     293        lightsButton.setEnabled(false);
     294        miscButtons.clearSelection();
     295        topButton.setEnabled(false);
     296        topButton.setBorderPainted(false);
     297        fogButton.setEnabled(false);
     298        fogButton.setBorderPainted(false);
     299        radButton.setEnabled(false);
     300        radButton.setBorderPainted(false);
     301        litButton.setEnabled(false);
     302        litButton.setBorderPainted(false);
     303        saveButton.setEnabled(false);
     304        moreButton.setVisible(false);
     305        moreButton.setText(">>");
     306        moreButton.setSelected(false);
     307        panelChan.setVisible(false);
     308        panelHaz.setVisible(false);
     309        panelSpec.setVisible(false);
     310        panelLights.setVisible(false);
     311        panelMore.setVisible(false);
     312        panelTop.setVisible(false);
     313        panelFog.setVisible(false);
     314        panelRadar.setVisible(false);
     315        panelLit.setVisible(false);
     316        nameBox.setEnabled(false);
     317        if (mark != null) {
     318            nameBox.setEnabled(true);
     319            chanButton.setEnabled(true);
     320            hazButton.setEnabled(true);
     321            specButton.setEnabled(true);
     322            lightsButton.setEnabled(true);
     323            nameBox.setText(mark.getName());
     324            switch (SeaMark.GrpMAP.get(mark.getObject())) {
     325            case LAT:
     326            case SAW:
     327                chanButton.setBorderPainted(true);
     328                panelChan.setVisible(true);
     329                panelChan.syncPanel();
     330                break;
     331            case CAR:
     332            case ISD:
     333                hazButton.setBorderPainted(true);
     334                panelHaz.setVisible(true);
     335                panelHaz.syncPanel();
     336                break;
     337            case SPP:
     338                specButton.setBorderPainted(true);
     339                panelSpec.setVisible(true);
     340                panelSpec.syncPanel();
     341                break;
     342            case LGT:
     343            case STN:
     344            case PLF:
     345                lightsButton.setBorderPainted(true);
     346                panelLights.setVisible(true);
     347                panelLights.syncPanel();
     348                break;
     349            }
     350            panelMore.syncPanel();
     351            panelTop.syncPanel();
     352            panelFog.syncPanel();
     353            panelRadar.syncPanel();
     354            panelLit.syncPanel();
     355        }
     356    }
     357
     358    private JRadioButton getButton(JRadioButton button, int x, int y, int w, int h, String tip) {
     359        button.setBounds(new Rectangle(x, y, w, h));
     360        button.setBorder(BorderFactory.createLoweredBevelBorder());
     361        button.setToolTipText(Messages.getString(tip));
     362        return button;
     363    }
    344364
    345365}
Note: See TracChangeset for help on using the changeset viewer.