source: trunk/gli/src/org/greenstone/gatherer/gui/MenuBar.java@ 13531

Last change on this file since 13531 was 12119, checked in by kjdon, 18 years ago

Changed text handling to use Dictionary.get rather than Dictionary.setText or Dictionary.registerBoth etc. also removed mnemonics cos they suck for other languages

  • Property svn:keywords set to Author Date Id Revision
File size: 7.9 KB
Line 
1/**
2 *#########################################################################
3 *
4 * A component of the Gatherer application, part of the Greenstone digital
5 * library suite from the New Zealand Digital Library Project at the
6 * University of Waikato, New Zealand.
7 *
8 * <BR><BR>
9 *
10 * Author: John Thompson, Greenstone Digital Library, University of Waikato
11 *
12 * <BR><BR>
13 *
14 * Copyright (C) 1999 New Zealand Digital Library Project
15 *
16 * <BR><BR>
17 *
18 * This program is free software; you can redistribute it and/or modify
19 * it under the terms of the GNU General Public License as published by
20 * the Free Software Foundation; either version 2 of the License, or
21 * (at your option) any later version.
22 *
23 * <BR><BR>
24 *
25 * This program is distributed in the hope that it will be useful,
26 * but WITHOUT ANY WARRANTY; without even the implied warranty of
27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28 * GNU General Public License for more details.
29 *
30 * <BR><BR>
31 *
32 * You should have received a copy of the GNU General Public License
33 * along with this program; if not, write to the Free Software
34 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
35 *########################################################################
36 */
37package org.greenstone.gatherer.gui;
38
39import java.awt.*;
40import java.awt.event.*;
41import javax.swing.*;
42import javax.swing.event.*;
43import org.greenstone.gatherer.Configuration;
44import org.greenstone.gatherer.Dictionary;
45import org.greenstone.gatherer.Gatherer;
46import org.greenstone.gatherer.util.JarTools;
47
48/** The menu bar for the Gatherer main GUI.
49 * @author John Thompson, Greenstone Digital Library, University of Waikato
50 * @version 2.2
51 */
52public class MenuBar
53 extends JMenuBar
54{
55 static public ImageIcon BLANK_ICON = JarTools.getImage("blank.gif");
56 static public ImageIcon HELP_ICON = JarTools.getImage("help.gif");
57
58 /** The icon to be displayed alongside the context choosen help file. */
59 private int current_tab = -1;
60
61 private JMenu file = null;
62 private JMenu edit = null;
63 public JMenu help = null;
64 public JMenuItem file_associations;
65 public JMenuItem file_cdimage = null;
66 public JMenuItem file_close = null;
67 public JMenuItem file_delete = null;
68 public JMenuItem file_exit = null;
69 public JMenuItem file_exportas = null;
70 public JMenuItem file_new = null;
71 public JMenuItem file_open = null;
72 public JMenuItem file_options = null;
73 public JMenuItem file_save = null;
74 public JMenuItem edit_copy;
75 public JMenuItem edit_cut;
76 public JMenuItem edit_paste;
77 public JMenuItem help_general;
78 public JMenuItem help_download;
79 public JMenuItem help_gather;
80 public JMenuItem help_enrich;
81 public JMenuItem help_design;
82 public JMenuItem help_create;
83 public JMenuItem help_format;
84 public JMenuItem help_about;
85
86
87 public MenuBar(MenuListener menu_listener)
88 {
89 file = new JMenu();
90 file.setText(Dictionary.get("Menu.File"));
91
92 file_associations = new JMenuItem(Dictionary.get("Menu.File_Associations"));
93 file_associations.addActionListener(Gatherer.g_man);
94
95 file_cdimage = new JMenuItem(Dictionary.get("Menu.File_CDimage"));
96 file_cdimage.addActionListener(Gatherer.g_man);
97 file_cdimage.setEnabled(!Gatherer.isGsdlRemote);
98
99 file_close = new JMenuItem(Dictionary.get("Menu.File_Close"));
100 file_close.addActionListener(Gatherer.g_man);
101 file_close.setEnabled(false);
102
103 file_delete = new JMenuItem(Dictionary.get("Menu.File_Delete"));
104 file_delete.addActionListener(Gatherer.g_man);
105
106 file_exit = new JMenuItem(Dictionary.get("Menu.File_Exit"));
107 file_exit.addActionListener(Gatherer.g_man);
108
109 file_exportas = new JMenuItem(Dictionary.get("Menu.File_ExportAs"));
110 file_exportas.addActionListener(Gatherer.g_man);
111 file_exportas.setEnabled(!Gatherer.isGsdlRemote);
112
113 file_new = new JMenuItem(Dictionary.get("Menu.File_New"));
114 file_new.addActionListener(Gatherer.g_man);
115
116 file_open = new JMenuItem(Dictionary.get("Menu.File_Open"));
117 file_open.addActionListener(Gatherer.g_man);
118
119 file_options = new JMenuItem(Dictionary.get("Menu.File_Options"));
120 file_options.addActionListener(Gatherer.g_man);
121
122 file_save = new JMenuItem(Dictionary.get("Menu.File_Save"));
123 file_save.addActionListener(Gatherer.g_man);
124 file_save.setEnabled(false);
125
126 // Layout (file menu)
127 file.add(file_new);
128 file.add(file_open);
129 file.add(file_save);
130 file.add(file_close);
131 file.add(new JSeparator());
132 file.add(file_delete);
133 file.add(file_exportas);
134 file.add(file_cdimage);
135 file.add(new JSeparator());
136 file.add(file_associations);
137 file.add(file_options);
138 file.add(new JSeparator());
139 file.add(file_exit);
140
141 // Edit menu
142 edit = new JMenu();
143 edit.setText(Dictionary.get("Menu.Edit"));
144
145 edit_cut = new JMenuItem(Dictionary.get("Menu.Edit_Cut"));
146 edit_cut.addActionListener(Gatherer.g_man);
147
148 edit_copy = new JMenuItem(Dictionary.get("Menu.Edit_Copy"));
149 edit_copy.addActionListener(Gatherer.g_man);
150
151 edit_paste = new JMenuItem(Dictionary.get("Menu.Edit_Paste"));
152 edit_paste.addActionListener(Gatherer.g_man);
153
154 // Layout (edit menu)
155 edit.add(edit_cut);
156 edit.add(edit_copy);
157 edit.add(edit_paste);
158
159 // Help menu
160 help = new JMenu();
161 help.setIcon(HELP_ICON);
162 help.setText(Dictionary.get("Menu.Help"));
163
164 help_general = new JMenuItem(Dictionary.get("Source.General"));
165 help_general.addActionListener(Gatherer.g_man);
166
167 help_download = new JMenuItem(Dictionary.get("GUI.Download"), BLANK_ICON);
168 help_download.addActionListener(Gatherer.g_man);
169
170 help_gather = new JMenuItem(Dictionary.get("GUI.Gather"), BLANK_ICON);
171 help_gather.addActionListener(Gatherer.g_man);
172
173 help_enrich = new JMenuItem(Dictionary.get("GUI.Enrich"), BLANK_ICON);
174 help_enrich.addActionListener(Gatherer.g_man);
175
176 help_design = new JMenuItem(Dictionary.get("GUI.Design"), BLANK_ICON);
177 help_design.addActionListener(Gatherer.g_man);
178
179 help_create = new JMenuItem(Dictionary.get("GUI.Create"), BLANK_ICON);
180 help_create.addActionListener(Gatherer.g_man);
181
182 help_format = new JMenuItem(Dictionary.get("GUI.Format"), BLANK_ICON);
183 help_format.addActionListener(Gatherer.g_man);
184
185 help_about = new JMenuItem(Dictionary.get("Menu.Help_About"));
186 help_about.addActionListener(Gatherer.g_man);
187
188 // Layout (help menu)
189 help.add(help_general);
190 help.add(new JSeparator());
191 if (Configuration.get("workflow.download", true)) {
192 help.add(help_download);
193 }
194 if (Configuration.get("workflow.gather", true)) {
195 help.add(help_gather);
196 }
197 if (Configuration.get("workflow.enrich", true)) {
198 help.add(help_enrich);
199 }
200 if (Configuration.get("workflow.design", true)) {
201 help.add(help_design);
202 }
203 if (Configuration.get("workflow.create", true)) {
204 help.add(help_create);
205 }
206 if (Configuration.get("workflow.format", true)) {
207 help.add(help_format);
208 }
209 help.add(new JSeparator());
210 help.add(help_about);
211
212 // Layout (menu bar)
213 this.add(file);
214 this.add(Box.createHorizontalStrut(15));
215 this.add(edit);
216 this.add(Box.createHorizontalGlue());
217 this.add(help);
218 }
219
220 /** Once a quit has been requested by the user, prevent any further menu selections. */
221 public void exit() {
222 file.setEnabled(false);
223 edit.setEnabled(false);
224 help.setEnabled(false);
225 }
226
227 public void refresh(int refresh_reason, boolean ready)
228 {
229 file_close.setEnabled(ready);
230 file_save.setEnabled(ready);
231 }
232
233
234 /** In order to provide context aware help advice we keep track of which
235 * tab the user has open, and then highlight that help menu item with
236 * separators.
237 * @param tab_index The index of the selected tab (0-7).
238 */
239 public void tabSelected(int tab_index) {
240 JMenuItem selected;
241 if(current_tab != -1) {
242 // Remove the image
243 selected = help.getItem(current_tab);
244 if(selected != null) {
245 selected.setIcon(BLANK_ICON);
246 }
247 }
248 current_tab = tab_index + 2;
249 selected = help.getItem(current_tab);
250 if(selected != null) {
251 selected.setIcon(HELP_ICON);
252 }
253 selected = null;
254 }
255}
Note: See TracBrowser for help on using the repository browser.