source: osm/applications/editors/josm/plugins/smed/src/panels/PanelPat.java@ 33178

Last change on this file since 33178 was 33178, checked in by donvip, 8 years ago

fix errors with error_prone

File size: 3.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package panels;
3
4import java.awt.Rectangle;
5import java.awt.event.ActionEvent;
6import java.awt.event.ActionListener;
7import java.util.EnumMap;
8
9import javax.swing.BorderFactory;
10import javax.swing.ButtonGroup;
11import javax.swing.ImageIcon;
12import javax.swing.JPanel;
13import javax.swing.JRadioButton;
14
15import messages.Messages;
16import seamarks.SeaMark.Ent;
17import seamarks.SeaMark.Pat;
18import smed.SmedAction;
19
20public class PanelPat extends JPanel {
21
22 private SmedAction dlg;
23 private Ent ent;
24 public PanelCol panelCol;
25
26 private ButtonGroup patButtons = new ButtonGroup();
27 public JRadioButton noneButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/NoneButton.png")));
28 public JRadioButton horizButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/HorizontalButton.png")));
29 public JRadioButton vertButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/VerticalButton.png")));
30 public JRadioButton diagButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/DiagonalButton.png")));
31 public JRadioButton squareButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SquaredButton.png")));
32 public JRadioButton borderButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/BorderButton.png")));
33 public EnumMap<Pat, JRadioButton> patterns = new EnumMap<>(Pat.class);
34 private ActionListener alPat = new ActionListener() {
35 @Override
36 public void actionPerformed(ActionEvent e) {
37 for (Pat pat : patterns.keySet()) {
38 JRadioButton button = patterns.get(pat);
39 if (button.isSelected()) {
40 SmedAction.panelMain.mark.setPattern(ent, pat);
41 button.setBorderPainted(true);
42 } else {
43 button.setBorderPainted(false);
44 }
45 }
46 switch (SmedAction.panelMain.mark.getPattern(ent)) {
47 case NOPAT:
48 panelCol.trimStack(1);
49 break;
50 case HSTRP:
51 case VSTRP:
52 case DIAG:
53 break;
54 case SQUARED:
55 panelCol.trimStack(4);
56 break;
57 case BORDER:
58 case CROSS:
59 panelCol.trimStack(2);
60 break;
61 default:
62 break;
63 }
64 }
65 };
66
67 public PanelPat(SmedAction dia, Ent entity) {
68 dlg = dia;
69 ent = entity;
70 setLayout(null);
71 panelCol = new PanelCol(dlg, ent);
72 panelCol.setBounds(new Rectangle(0, 0, 72, 160));
73 add(panelCol);
74 add(getPatButton(noneButton, 76, 0, 27, 27, "NoPat", Pat.NOPAT));
75 add(getPatButton(horizButton, 76, 26, 27, 27, "HorizPat", Pat.HSTRP));
76 add(getPatButton(vertButton, 76, 52, 27, 27, "VertPat", Pat.VSTRP));
77 add(getPatButton(diagButton, 76, 78, 27, 27, "DiagPat", Pat.DIAG));
78 add(getPatButton(squareButton, 76, 104, 27, 27, "SquarePat", Pat.SQUARED));
79 add(getPatButton(borderButton, 76, 130, 27, 27, "BorderPat", Pat.BORDER));
80
81 }
82
83 public void syncPanel() {
84 for (Pat pat : patterns.keySet()) {
85 JRadioButton button = patterns.get(pat);
86 if (SmedAction.panelMain.mark.getPattern(ent) == pat) {
87 button.setBorderPainted(true);
88 } else {
89 button.setBorderPainted(false);
90 }
91 }
92 panelCol.syncPanel();
93 }
94
95 private JRadioButton getPatButton(JRadioButton button, int x, int y, int w, int h, String tip, Pat pat) {
96 button.setBounds(new Rectangle(x, y, w, h));
97 button.setBorder(BorderFactory.createLoweredBevelBorder());
98 button.setToolTipText(Messages.getString(tip));
99 button.addActionListener(alPat);
100 patButtons.add(button);
101 patterns.put(pat, button);
102 return button;
103 }
104
105}
Note: See TracBrowser for help on using the repository browser.