Source code: com/lanceolav/jreftree/TheMenuBar.java
1 /**
2 * JRefTree is a GUI interface to organize and output bibliographic references.
3 * Copyright (C) 2003 Lance O. Eastgate.
4 *
5 * This file is part of JRefTree, and was created on Mar 17, 2003.
6 *
7 * JRefTree is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 *
21 * The author can be reached at jreftree@lanceolav.com.
22 */
23
24 package com.lanceolav.jreftree;
25
26 import javax.swing.*;
27 import java.awt.event.ActionEvent;
28 import java.awt.event.ActionListener;
29 import java.awt.event.KeyEvent;
30
31 public class TheMenuBar extends JMenuBar {
32
33 private JMenuItem newProjectMenuItem, openProjectMenuItem,
34 saveProjectMenuItem, saveProjectAsMenuItem;
35
36 private JMenuItem importBibtexMenuItem, importISIMenuItem, importXMLMenuItem;
37
38 private JMenuItem exportWholelistBibtexMenuItem, exportWholelistXMLMenuItem,
39 exportSelectedMenuItem, exportBranchMenuItem;
40
41 private JMenuItem newFolderMenuItem, removeFolderMenuItem,
42 updateFolderMenuItem, renameFolderMenuItem;
43
44 private JMenuItem newRefMenuItem, editRefMenuItem, removeSelectedRefsMenuItem,
45 invertSelectionMenuItem, viewFullPaperMenuItem, downloadMenuItem;
46
47 private JMenuItem configProxyMenuItem;
48
49 private JMenuItem helpMenuItem, todoMenuItem, aboutMenuItem,
50 copyrightMenuItem, warrantyMenuItem;
51
52 public TheMenuBar(){
53 add(createFileMenu());
54 add(createFolderMenu());
55 add(createRefMenu());
56 add(createWebMenu());
57 // Put the help menu all the way to the right
58 add(Box.createHorizontalGlue());
59 add(createHelpMenu());
60 }
61
62 public void addActionListener(ActionListener listener) {
63 newProjectMenuItem.addActionListener(listener);
64 openProjectMenuItem.addActionListener(listener);
65 saveProjectMenuItem.addActionListener(listener);
66 saveProjectAsMenuItem.addActionListener(listener);
67
68 importBibtexMenuItem.addActionListener(listener);
69 importISIMenuItem.addActionListener(listener);
70 importXMLMenuItem.addActionListener(listener);
71
72 exportWholelistBibtexMenuItem.addActionListener(listener);
73 exportWholelistXMLMenuItem.addActionListener(listener);
74 exportSelectedMenuItem.addActionListener(listener);
75 exportBranchMenuItem.addActionListener(listener);
76
77 newFolderMenuItem.addActionListener(listener);
78 removeFolderMenuItem.addActionListener(listener);
79 updateFolderMenuItem.addActionListener(listener);
80 renameFolderMenuItem.addActionListener(listener);
81
82 newRefMenuItem.addActionListener(listener);
83 editRefMenuItem.addActionListener(listener);
84 removeSelectedRefsMenuItem.addActionListener(listener);
85 invertSelectionMenuItem.addActionListener(listener);
86
87 configProxyMenuItem.addActionListener(listener);
88
89 helpMenuItem.addActionListener(listener);
90 todoMenuItem.addActionListener(listener);
91 aboutMenuItem.addActionListener(listener);
92 copyrightMenuItem.addActionListener(listener);
93 warrantyMenuItem.addActionListener(listener);
94 }
95
96 public void addViewFullPaperActionListener(ActionListener a) {
97 viewFullPaperMenuItem.addActionListener(a);
98 }
99
100 public void addDownloadActionListener(ActionListener a) {
101 downloadMenuItem.addActionListener(a);
102 }
103
104
105 private JMenu createFileMenu() {
106 JMenu menu = new JMenu("File");
107 menu.setMnemonic(KeyEvent.VK_F);
108
109 newProjectMenuItem = new JMenuItem("New Project");
110 newProjectMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
111 newProjectMenuItem.setActionCommand("file|new_project");
112 menu.add(newProjectMenuItem);
113
114 openProjectMenuItem = new JMenuItem("Open Project ...");
115 openProjectMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
116 openProjectMenuItem.setActionCommand("file|open_project");
117 menu.add(openProjectMenuItem);
118
119 saveProjectMenuItem = new JMenuItem("Save Project");
120 saveProjectMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
121 saveProjectMenuItem.setActionCommand("file|save_project");
122 menu.add(saveProjectMenuItem);
123
124 saveProjectAsMenuItem = new JMenuItem("Save Project As ...");
125 saveProjectAsMenuItem.setActionCommand("file|save_project_as");
126 menu.add(saveProjectAsMenuItem);
127
128 menu.addSeparator();
129
130 menu.add(createImportSubmenu());
131 menu.add(createExportSubmenu());
132
133 menu.addSeparator();
134
135 JMenuItem menuItem = new JMenuItem("Exit");
136 menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, ActionEvent.CTRL_MASK));
137 menuItem.addActionListener( new ActionListener() {
138 public void actionPerformed(ActionEvent e){ System.exit(0); }
139 });
140 menu.add(menuItem);
141
142 return menu;
143 }
144
145 private JMenu createImportSubmenu() {
146 // Todo: BibTeX, XML (in that order)
147 JMenu importrefs = new JMenu("Import References to list");
148
149 importBibtexMenuItem = new JMenuItem("BibTeX");
150 importBibtexMenuItem.setActionCommand("file|import|bibtex");
151 importBibtexMenuItem.setEnabled(false);
152 importrefs.add(importBibtexMenuItem);
153
154 importISIMenuItem = new JMenuItem("ISI");
155 importISIMenuItem.setActionCommand("file|import|isi");
156 importrefs.add(importISIMenuItem);
157
158 importXMLMenuItem = new JMenuItem("XML");
159 importXMLMenuItem.setActionCommand("file|import|xml");
160 importrefs.add(importXMLMenuItem);
161
162 return importrefs;
163 }
164
165 private JMenu createExportSubmenu() {
166 JMenu exportrefs = new JMenu("Export References");
167
168 JMenu subMenu = new JMenu("Whole List");
169 exportWholelistBibtexMenuItem = new JMenuItem("BibTeX");
170 exportWholelistBibtexMenuItem.setActionCommand("file|export|all|bibtex");
171 subMenu.add(exportWholelistBibtexMenuItem);
172 exportWholelistXMLMenuItem = new JMenuItem("XML");
173 exportWholelistXMLMenuItem.setActionCommand("file|export|all|xml");
174 subMenu.add(exportWholelistXMLMenuItem);
175 exportrefs.add(subMenu);
176
177 // TODO: Implement
178 // priority: BibTeX
179 exportSelectedMenuItem = new JMenuItem("Selected in List ...");
180 exportSelectedMenuItem.setActionCommand("file|export|selected");
181 exportSelectedMenuItem.setEnabled(false);
182 exportrefs.add(exportSelectedMenuItem);
183
184 // TODO: Implement
185 // priority: BibTeX, XHTML
186 exportBranchMenuItem = new JMenuItem("Branch of tree ...");
187 exportBranchMenuItem.setActionCommand("file|export|branch");
188 exportBranchMenuItem.setEnabled(false);
189 exportrefs.add(exportBranchMenuItem);
190
191 return exportrefs;
192 }
193
194 private JMenu createFolderMenu() {
195 JMenu menu = new JMenu("Folder");
196 menu.setMnemonic(KeyEvent.VK_O);
197
198 newFolderMenuItem = new JMenuItem("New");
199 newFolderMenuItem.setActionCommand("folder|new");
200 menu.add(newFolderMenuItem);
201
202 removeFolderMenuItem = new JMenuItem("Remove");
203 removeFolderMenuItem.setActionCommand("folder|remove");
204 removeFolderMenuItem.setEnabled(false);
205 menu.add(removeFolderMenuItem);
206
207 updateFolderMenuItem = new JMenuItem("Update");
208 updateFolderMenuItem.setActionCommand("folder|update");
209 menu.add(updateFolderMenuItem);
210
211 renameFolderMenuItem = new JMenuItem("Rename");
212 renameFolderMenuItem.setActionCommand("folder|rename");
213 menu.add(renameFolderMenuItem);
214
215 return menu;
216 }
217
218 private JMenu createRefMenu() {
219 JMenu menu = new JMenu("References");
220 menu.setMnemonic(KeyEvent.VK_R);
221
222 newRefMenuItem = new JMenuItem("New");
223 newRefMenuItem.setActionCommand("references|new");
224 menu.add(newRefMenuItem);
225
226 editRefMenuItem = new JMenuItem("Edit");
227 editRefMenuItem.setActionCommand("references|edit");
228 editRefMenuItem.setEnabled(false);
229 menu.add(editRefMenuItem);
230
231 removeSelectedRefsMenuItem = new JMenuItem("Remove Selected");
232 removeSelectedRefsMenuItem.setActionCommand("references|remove_selected");
233 menu.add(removeSelectedRefsMenuItem);
234
235 menu.addSeparator();
236
237 invertSelectionMenuItem = new JMenuItem("Invert Selection");
238 invertSelectionMenuItem.setActionCommand("references|invert_selection");
239 menu.add(invertSelectionMenuItem);
240
241 viewFullPaperMenuItem = new JMenuItem("View Full Paper");
242 viewFullPaperMenuItem.setActionCommand("view_full_paper");
243 viewFullPaperMenuItem.setEnabled(false);
244 menu.add(viewFullPaperMenuItem);
245
246 downloadMenuItem = new JMenuItem("Download Paper");
247 downloadMenuItem.setActionCommand("download_paper");
248 downloadMenuItem.setEnabled(false);
249 menu.add(downloadMenuItem);
250
251 return menu;
252 }
253
254 private JMenu createWebMenu() {
255 JMenu menu = new JMenu("Internet");
256 menu.setMnemonic(KeyEvent.VK_I);
257
258 configProxyMenuItem = new JMenuItem("Config Proxy");
259 configProxyMenuItem.setActionCommand("web|config_proxy");
260 menu.add(configProxyMenuItem);
261
262 return menu;
263 }
264
265 private JMenu createHelpMenu() {
266 JMenu menu = new JMenu("Help");
267 menu.setMnemonic(KeyEvent.VK_H);
268
269 helpMenuItem = new JMenuItem("Help");
270 helpMenuItem.setActionCommand("help|help");
271 menu.add(helpMenuItem);
272
273 todoMenuItem = new JMenuItem("TODO");
274 todoMenuItem.setActionCommand("help|todo");
275 menu.add(todoMenuItem);
276
277 aboutMenuItem = new JMenuItem("About");
278 aboutMenuItem.setActionCommand("help|about");
279 menu.add(aboutMenuItem);
280
281 menu.addSeparator();
282
283 copyrightMenuItem = new JMenuItem("Copyright");
284 copyrightMenuItem.setActionCommand("help|copyright");
285 menu.add(copyrightMenuItem);
286
287 warrantyMenuItem = new JMenuItem("Warranty");
288 warrantyMenuItem.setActionCommand("help|warranty");
289 menu.add(warrantyMenuItem);
290
291 return menu;
292 }
293
294 public void enableNewFolderMenuItem(boolean b) {
295 newFolderMenuItem.setEnabled(b);
296 }
297
298 public void enableRemoveFolderMenuItem(boolean b) {
299 removeFolderMenuItem.setEnabled(b);
300 }
301
302 public void enableUpdateFolderMenuItem(boolean b) {
303 updateFolderMenuItem.setEnabled(b);
304 }
305
306 public void enableRenameFolderMenuItem(boolean b) {
307 renameFolderMenuItem.setEnabled(b);
308 }
309
310 public void enableEditReferenceMenuItem(boolean b) {
311 editRefMenuItem.setEnabled(b);
312 }
313
314 public void enableViewFullPaperMenuItem(boolean b) {
315 viewFullPaperMenuItem.setEnabled(b);
316 }
317
318 public void enableDownloadMenuItem(boolean b) {
319 downloadMenuItem.setEnabled(b);
320 }
321
322 }