source: osm/applications/editors/josm/plugins/smed/src/smed/tabs/SmedTabAction.java@ 28770

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

'New release'

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1package smed.tabs;
2
3import static org.openstreetmap.josm.tools.I18n.tr;
4
5import java.awt.BorderLayout;
6import java.awt.Dimension;
7import java.awt.event.ActionEvent;
8import java.awt.event.KeyEvent;
9import java.util.List;
10
11import javax.swing.JFrame;
12import javax.swing.JMenuItem;
13import javax.swing.JTextField;
14import javax.swing.SwingUtilities;
15import javax.swing.WindowConstants;
16
17import org.openstreetmap.josm.actions.JosmAction;
18import org.openstreetmap.josm.tools.Shortcut;
19
20import smed.menu.SmedMenuBar;
21import smed.plug.ifc.SmedPluggable;
22
23public class SmedTabAction extends JosmAction {
24
25 /**
26 *
27 */
28 private static final long serialVersionUID = 1L;
29 private SmedTabbedPane smedTabs = new SmedTabbedPane();
30 private SmedMenuBar smedMenu = new SmedMenuBar();
31 private JFrame frame = null;
32 private boolean isOpen = false;
33 private JMenuItem osmItem =null;
34 public static JTextField smedStatusBar = null;
35 private static String editor =tr("SeaMap Editor");
36
37 public SmedTabAction() {
38 super( editor, "Smed", editor, null, true);
39 }
40
41
42 @Override
43 public void actionPerformed(ActionEvent e) {
44 SwingUtilities.invokeLater(new Runnable() {
45 public void run() {
46 createAndShowTabs();
47 }
48 });
49
50 isOpen = true;
51 if (osmItem == null) return;
52
53 osmItem.setEnabled(false);
54 }
55
56
57 protected void createAndShowTabs() {
58 //Create and set up the window.
59 frame = new JFrame(editor);
60 smedStatusBar = new JTextField();
61 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
62 frame.setResizable(true);
63 frame.setAlwaysOnTop(true);
64
65 //Add content to the window.
66 frame.setJMenuBar(smedMenu);
67 frame.add(smedTabs, BorderLayout.CENTER);
68 frame.add(smedStatusBar,BorderLayout.PAGE_END);
69
70 //Display the window.
71 frame.addWindowListener(new java.awt.event.WindowAdapter() {
72 public void windowClosing(java.awt.event.WindowEvent e) {
73 osmItem.setEnabled(true);
74
75 closeDialog();
76 }
77 });
78 frame.setSize(new Dimension(420, 470));
79 // frame.pack();
80 frame.setVisible(true);
81 }
82
83
84 public void closeDialog() {
85 List<SmedPluggable> plugins = SmedTabbedPane.getPlugins();
86
87 if(plugins != null) {
88 for(SmedPluggable p : plugins) p.stop();
89 }
90
91 if(isOpen) {
92 frame.setVisible(false);
93 frame.dispose();
94 }
95
96 isOpen = false;
97 }
98
99
100 public void setOsmItem(JMenuItem item) {
101 osmItem = item;
102 }
103
104}
Note: See TracBrowser for help on using the repository browser.