source: osm/applications/editors/josm/plugins/smed1/src/panels/PanelPat.java@ 29036

Last change on this file since 29036 was 29036, checked in by malcolmh, 12 years ago

initial

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