Changeset 5564 for trunk/gli/src/org/greenstone/gatherer/gui/MenuBar.java
- Timestamp:
- 2003-10-03T14:07:35+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/gui/MenuBar.java
r5527 r5564 1 package org.greenstone.gatherer.gui;2 1 /** 3 2 *######################################################################### … … 36 35 *######################################################################## 37 36 */ 37 package org.greenstone.gatherer.gui; 38 38 39 import java.awt.*; 39 40 import java.awt.event.*; 40 41 import javax.swing.*; 41 42 import javax.swing.event.*; 43 import org.greenstone.gatherer.Dictionary; 42 44 import org.greenstone.gatherer.Gatherer; 43 45 import org.greenstone.gatherer.util.Utility; 46 44 47 /** The menu bar for the Gatherer main GUI. 45 48 * @author John Thompson, Greenstone Digital Library, University of Waikato … … 50 53 /** The icon to be displayed alongside the context choosen help file. */ 51 54 private int current_tab = -1; 55 52 56 private JMenu file = null; 53 57 private JMenu edit = null; 54 58 private JMenu metadata = null; 55 59 private JMenu tools = null; 56 private JMenu log = null;57 private JMenu window = null;58 private JMenu source = null;59 private JMenu level = null;60 60 public JMenu help = null; 61 61 public JMenuItem file_associations; … … 75 75 public JMenuItem edit_replace = null; 76 76 public JMenuItem edit_search = null; 77 public JMenuItem metadata_ add= null;77 public JMenuItem metadata_import = null; 78 78 public JMenuItem metadata_edit = null; 79 79 public JMenuItem metadata_export = null; … … 92 92 public MagicMenuItem metadata_view = null; 93 93 94 public MenuBar(MenuListener menu_listener) {95 96 file = new JMenu( get("Menu.File"));94 public MenuBar(MenuListener menu_listener) 95 { 96 file = new JMenu(); 97 97 file.setMnemonic(KeyEvent.VK_F); 98 this.add(file);99 100 file_associations = new JMenuItem( get("Menu.File_Associations"), KeyEvent.VK_A);98 Dictionary.registerText(file, "Menu.File"); 99 100 file_associations = new JMenuItem(); 101 101 file_associations.addActionListener(Gatherer.g_man); 102 103 file_close = new JMenuItem(get("Menu.File_Close"), KeyEvent.VK_C); 102 file_associations.setMnemonic(KeyEvent.VK_A); 103 Dictionary.registerText(file_associations, "Menu.File_Associations"); 104 105 file_close = new JMenuItem(); 104 106 file_close.addActionListener(Gatherer.g_man); 105 107 file_close.setEnabled(false); 106 107 file_delete = new JMenuItem(get("Menu.File_Delete"), KeyEvent.VK_D); 108 file_close.setMnemonic(KeyEvent.VK_C); 109 Dictionary.registerText(file_close, "Menu.File_Close"); 110 111 file_delete = new JMenuItem(); 108 112 file_delete.addActionListener(Gatherer.g_man); 109 110 file_exit = new JMenuItem(get("Menu.File_Exit"), KeyEvent.VK_X); 113 file_delete.setMnemonic(KeyEvent.VK_D); 114 Dictionary.registerText(file_delete, "Menu.File_Delete"); 115 116 file_exit = new JMenuItem(); 111 117 file_exit.addActionListener(Gatherer.g_man); 112 113 file_new = new JMenuItem(get("Menu.File_New"), KeyEvent.VK_N); 118 file_exit.setMnemonic(KeyEvent.VK_X); 119 Dictionary.registerText(file_exit, "Menu.File_Exit"); 120 121 file_new = new JMenuItem(); 114 122 file_new.addActionListener(Gatherer.g_man); 115 116 file_open = new JMenuItem(get("Menu.File_Open"), KeyEvent.VK_O); 123 file_new.setMnemonic(KeyEvent.VK_N); 124 Dictionary.registerText(file_new, "Menu.File_New"); 125 126 file_open = new JMenuItem(); 117 127 file_open.addActionListener(Gatherer.g_man); 118 119 file_options = new JMenuItem(get("Menu.File_Options"), KeyEvent.VK_P); 120 file_options.addActionListener(Gatherer.g_man); 121 122 file_save = new JMenuItem(get("Menu.File_Save"), KeyEvent.VK_S); 128 file_open.setMnemonic(KeyEvent.VK_O); 129 Dictionary.registerText(file_open, "Menu.File_Open"); 130 131 file_options = new JMenuItem(); 132 file_options.addActionListener(Gatherer.g_man); 133 file_options.setMnemonic(KeyEvent.VK_P); 134 Dictionary.registerText(file_options, "Menu.File_Options"); 135 136 file_save = new JMenuItem(); 123 137 file_save.addActionListener(Gatherer.g_man); 124 138 file_save.setEnabled(false); 125 126 file_save_as = new JMenuItem(get("Menu.File_Save_As"), KeyEvent.VK_A); 127 //file_save_as.addActionListener(Gatherer.g_man); 128 file_save_as.setEnabled(false); 129 130 // Layout file menu 139 file_save.setMnemonic(KeyEvent.VK_S); 140 Dictionary.registerText(file_save, "Menu.File_Save"); 141 142 // file_save_as = new JMenuItem(); 143 // file_save_as.addActionListener(Gatherer.g_man); 144 // file_save_as.setEnabled(false); 145 // file_save_as.setMnemonic(KeyEvent.VK_A); 146 // Dictionary.registerText(file_save_as, "Menu.File_Save_As"); 147 148 // Layout (file menu) 131 149 file.add(file_new); 132 150 file.add(file_open); 133 151 file.add(file_save); 134 // file.add(file_save_as);152 // file.add(file_save_as); 135 153 file.add(file_close); 136 //file.add(new JSeparator());137 154 file.add(file_delete); 138 155 file.add(new JSeparator()); … … 143 160 144 161 // Edit menu 145 edit = new JMenu( get("Menu.Edit"));162 edit = new JMenu(); 146 163 edit.setMnemonic(KeyEvent.VK_E); 147 this.add(Box.createHorizontalStrut(15)); 148 this.add(edit); 164 Dictionary.registerText(edit, "Menu.Edit"); 149 165 150 edit_cut = new JMenuItem( get("Menu.Edit_Cut") + " (ctrl-x)", KeyEvent.VK_X);166 edit_cut = new JMenuItem(); 151 167 edit_cut.addActionListener(Gatherer.g_man); 152 153 edit_copy = new JMenuItem(get("Menu.Edit_Copy") + " (ctrl-c)", KeyEvent.VK_C); 168 edit_cut.setMnemonic(KeyEvent.VK_X); 169 Dictionary.registerText(edit_cut, "Menu.Edit_Cut"); 170 171 edit_copy = new JMenuItem(); 154 172 edit_copy.addActionListener(Gatherer.g_man); 155 156 edit_paste = new JMenuItem(get("Menu.Edit_Paste") + " (ctrl-v)", KeyEvent.VK_V); 173 edit_copy.setMnemonic(KeyEvent.VK_C); 174 Dictionary.registerText(edit_copy, "Menu.Edit_Copy"); 175 176 edit_paste = new JMenuItem(); 157 177 edit_paste.addActionListener(Gatherer.g_man); 158 159 edit_undo = new JMenuItem(get("Menu.Edit_Undo"), KeyEvent.VK_U); 160 edit_undo.setEnabled(false); 161 162 edit_redo = new JMenuItem(get("Menu.Edit_Redo"), KeyEvent.VK_D); 163 edit_redo.setEnabled(false); 164 165 edit_search = new JMenuItem(get("Menu.Edit_Search"), KeyEvent.VK_S); 166 edit_search.addActionListener(Gatherer.g_man); 167 168 edit_replace = new JMenuItem(get("Menu.Edit_Replace"), KeyEvent.VK_R); 169 edit_replace.addActionListener(Gatherer.g_man); 170 178 edit_paste.setMnemonic(KeyEvent.VK_V); 179 Dictionary.registerText(edit_paste, "Menu.Edit_Paste"); 180 181 // edit_undo = new JMenuItem(); 182 // edit_undo.setEnabled(false); 183 // edit_undo.setMnemonic(KeyEvent.VK_U); 184 // Dictionary.registerText(edit_undo, "Menu.Edit_Undo"); 185 186 // edit_redo = new JMenuItem(); 187 // edit_redo.setEnabled(false); 188 // edit_redo.setMnemonic(KeyEvent.VK_D); 189 // Dictionary.registerText(edit_redo, "Menu.Edit_Redo"); 190 191 // edit_search = new JMenuItem(); 192 // edit_search.addActionListener(Gatherer.g_man); 193 // edit_search.setMnemonic(KeyEvent.VK_S); 194 // Dictionary.registerText(edit_search, "Menu.Edit_Search"); 195 196 // edit_replace = new JMenuItem(); 197 // edit_replace.addActionListener(Gatherer.g_man); 198 // edit_replace.setMnemonic(KeyEvent.VK_R); 199 // Dictionary.registerText(edit_replace, "Menu.Edit_Replace"); 200 201 // Layout (edit menu) 171 202 edit.add(edit_cut); 172 203 edit.add(edit_copy); 173 204 edit.add(edit_paste); 174 // edit.add(new JSeparator());175 // edit.add(edit_undo);176 // edit.add(edit_redo);177 // edit.add(new JSeparator());178 // edit.add(edit_search);179 // edit.add(edit_replace);205 // edit.add(new JSeparator()); 206 // edit.add(edit_undo); 207 // edit.add(edit_redo); 208 // edit.add(new JSeparator()); 209 // edit.add(edit_search); 210 // edit.add(edit_replace); 180 211 181 212 // Metadata menu 182 metadata = new JMenu( get("Menu.Metadata"));213 metadata = new JMenu(); 183 214 metadata.setEnabled(false); 184 215 metadata.setMnemonic(KeyEvent.VK_M); 185 186 metadata_add = new JMenuItem(get("Menu.Metadata_Add"), KeyEvent.VK_I); 187 metadata_add.addActionListener(Gatherer.g_man); 188 189 metadata_edit = new JMenuItem(get("Menu.Metadata_Edit"), KeyEvent.VK_E); 216 Dictionary.registerText(metadata, "Menu.Metadata"); 217 218 metadata_import = new JMenuItem(); 219 metadata_import.addActionListener(Gatherer.g_man); 220 metadata_import.setMnemonic(KeyEvent.VK_I); 221 Dictionary.registerText(metadata_import, "Menu.Metadata_Import"); 222 223 metadata_edit = new JMenuItem(); 190 224 metadata_edit.addActionListener(Gatherer.g_man); 191 192 metadata_export = new JMenuItem(get("Menu.Metadata_Export"), KeyEvent.VK_X); 225 metadata_edit.setMnemonic(KeyEvent.VK_E); 226 Dictionary.registerText(metadata_edit, "Menu.Metadata_Edit"); 227 228 metadata_export = new JMenuItem(); 193 229 metadata_export.addActionListener(Gatherer.g_man); 194 195 metadata_view = new MagicMenuItem(get("Menu.Metadata_View") + " " + get("FileActions.No_Selection"), KeyEvent.VK_A); 230 metadata_export.setMnemonic(KeyEvent.VK_X); 231 Dictionary.registerText(metadata_export, "Menu.Metadata_Export"); 232 233 metadata_view = new MagicMenuItem(Dictionary.newget("Menu.Metadata_View") + " " + Dictionary.newget("FileActions.No_Selection"), KeyEvent.VK_A); 196 234 metadata_view.addActionListener(Gatherer.g_man); 197 235 198 metadata.add(metadata_add); 236 // Layout (metadata sets menu) 237 metadata.add(metadata_import); 199 238 metadata.add(metadata_edit); 200 239 metadata.add(metadata_export); 201 240 metadata.add(metadata_view); 241 242 // Tools menu 243 // tools = new JMenu(); 244 // tools.setEnabled(false); 245 // tools.setMnemonic(KeyEvent.VK_T); 246 // Dictionary.registerText(tools, "Menu.Tools"); 247 248 // tools_log = new JMenuItem(); 249 // tools_log.addActionListener(Gatherer.g_man); 250 // tools_log.setMnemonic(KeyEvent.VK_L); 251 // Dictionary.registerText(tools_log, "Menu.Tools_Log"); 252 253 // tools_size = new JMenuItem(); 254 // tools_size.addActionListener(Gatherer.g_man); 255 // tools_size.setMnemonic(KeyEvent.VK_C); 256 // Dictionary.registerText(tools_size, "Menu.Tools_Calculate_Record_Size"); 257 258 // Layout (tools menu) 259 // tools.add(tools_log); 260 // tools.add(tools_size); 261 262 // Help menu 263 help = new JMenu(); 264 help.setIcon(Utility.HELP_ICON); 265 Dictionary.setText(help, "Menu.Help"); 266 267 help_about = new JMenuItem(); 268 help_about.addActionListener(Gatherer.g_man); 269 Dictionary.registerText(help_about, "Menu.Help_About"); 270 271 help_browse = new JMenuItem(Utility.BLANK_ICON); 272 help_browse.addActionListener(Gatherer.g_man); 273 Dictionary.registerText(help_browse, "GUI.Hunt"); 274 275 help_build = new JMenuItem(Utility.BLANK_ICON); 276 help_build.addActionListener(Gatherer.g_man); 277 Dictionary.registerText(help_build, "GUI.Create"); 278 279 help_collect = new JMenuItem(Utility.BLANK_ICON); 280 help_collect.addActionListener(Gatherer.g_man); 281 Dictionary.registerText(help_collect, "GUI.Gather"); 282 283 help_design = new JMenuItem(Utility.BLANK_ICON); 284 help_design.addActionListener(Gatherer.g_man); 285 Dictionary.registerText(help_design, "GUI.Design"); 286 287 help_export = new JMenuItem(Utility.BLANK_ICON); 288 help_export.addActionListener(Gatherer.g_man); 289 Dictionary.registerText(help_export, "GUI.Export"); 290 291 help_general = new JMenuItem(); 292 help_general.addActionListener(Gatherer.g_man); 293 Dictionary.registerText(help_general, "Source.General"); 294 295 help_metaedit = new JMenuItem(Utility.BLANK_ICON); 296 help_metaedit.addActionListener(Gatherer.g_man); 297 Dictionary.registerText(help_metaedit, "GUI.Enrich"); 298 299 help_mirror = new JMenuItem(Utility.BLANK_ICON); 300 help_mirror.addActionListener(Gatherer.g_man); 301 Dictionary.registerText(help_mirror, "GUI.Mirror"); 302 303 help_preview = new JMenuItem(Utility.BLANK_ICON); 304 help_preview.addActionListener(Gatherer.g_man); 305 Dictionary.registerText(help_preview, "GUI.Preview"); 306 307 // Layout (help menu) 308 help.add(help_general); 309 help.add(new JSeparator()); 310 if (Gatherer.config.get("workflow.browse", true)) { 311 help.add(help_browse); 312 } 313 if (Gatherer.config.get("workflow.mirror", true)) { 314 help.add(help_mirror); 315 } 316 if (Gatherer.config.get("workflow.gather", true)) { 317 help.add(help_collect); 318 } 319 if (Gatherer.config.get("workflow.enrich", true)) { 320 help.add(help_metaedit); 321 } 322 if (Gatherer.config.get("workflow.design", true)) { 323 help.add(help_design); 324 } 325 if (Gatherer.config.get("workflow.export", true)) { 326 help.add(help_export); 327 } 328 if (Gatherer.config.get("workflow.create", true)) { 329 help.add(help_build); 330 } 331 if (Gatherer.config.get("workflow.preview", true)) { 332 help.add(help_preview); 333 } 334 help.add(new JSeparator()); 335 help.add(help_about); 336 337 // Layout (menu bar) 338 this.add(file); 339 this.add(Box.createHorizontalStrut(15)); 340 this.add(edit); 202 341 this.add(Box.createHorizontalStrut(15)); 203 342 this.add(metadata); 204 205 // Tools menu 206 tools = new JMenu(get("Menu.Tools")); 207 208 tools_log = new JMenuItem(get("Menu.Tools_Log"), KeyEvent.VK_L); 209 tools_log.addActionListener(Gatherer.g_man); 210 211 tools_size = new JMenuItem("Calculate Record Size", KeyEvent.VK_S); 212 tools_size.addActionListener(Gatherer.g_man); 213 214 tools.add(tools_log); 215 tools.add(tools_size); 216 //this.add(Box.createHorizontalStrut(15)); 217 //this.add(tools); 218 219 // Help menu 220 help = new JMenu(get("Menu.Help")); 221 //help.addMenuListener(menu_listener); 222 help.setIcon(Utility.HELP_ICON); 223 224 help_about = new JMenuItem(get("Menu.Help_About")); 225 help_about.addActionListener(Gatherer.g_man); 226 227 help_browse = new JMenuItem(get("GUI.Hunt"), Utility.BLANK_ICON); 228 help_browse.addActionListener(Gatherer.g_man); 229 230 help_build = new JMenuItem(get("GUI.Create"), Utility.BLANK_ICON); 231 help_build.addActionListener(Gatherer.g_man); 232 233 help_collect = new JMenuItem(get("GUI.Gather"), Utility.BLANK_ICON); 234 help_collect.addActionListener(Gatherer.g_man); 235 236 help_design = new JMenuItem(get("GUI.Design"), Utility.BLANK_ICON); 237 help_design.addActionListener(Gatherer.g_man); 238 239 help_export = new JMenuItem(get("GUI.Export"), Utility.BLANK_ICON); 240 help_export.addActionListener(Gatherer.g_man); 241 242 help_general = new JMenuItem(get("Source.General")); 243 help_general.addActionListener(Gatherer.g_man); 244 245 help_metaedit = new JMenuItem(get("GUI.Enrich"), Utility.BLANK_ICON); 246 help_metaedit.addActionListener(Gatherer.g_man); 247 248 help_mirror = new JMenuItem(get("GUI.Mirror"), Utility.BLANK_ICON); 249 help_mirror.addActionListener(Gatherer.g_man); 250 251 help_preview = new JMenuItem(get("GUI.Preview"), Utility.BLANK_ICON); 252 help_preview.addActionListener(Gatherer.g_man); 253 254 // Layout help 255 help.add(help_general); 256 help.add(new JSeparator()); 257 if(Gatherer.config.get("workflow.browse", true)) { 258 help.add(help_browse); 259 } 260 if(Gatherer.config.get("workflow.mirror", true)) { 261 help.add(help_mirror); 262 } 263 if(Gatherer.config.get("workflow.gather", true)) { 264 help.add(help_collect); 265 } 266 if(Gatherer.config.get("workflow.enrich", true)) { 267 help.add(help_metaedit); 268 } 269 if(Gatherer.config.get("workflow.design", true)) { 270 help.add(help_design); 271 } 272 if(Gatherer.config.get("workflow.export", true)) { 273 help.add(help_export); 274 } 275 if(Gatherer.config.get("workflow.create", true)) { 276 help.add(help_build); 277 } 278 if(Gatherer.config.get("workflow.preview", true)) { 279 help.add(help_preview); 280 } 281 help.add(new JSeparator()); 282 help.add(help_about); 343 // this.add(Box.createHorizontalStrut(15)); 344 // this.add(tools); 283 345 this.add(Box.createHorizontalGlue()); 284 346 this.add(help); … … 288 350 file_close.setEnabled(ready); 289 351 file_save.setEnabled(ready); 290 file_save_as.setEnabled(ready);352 // file_save_as.setEnabled(ready); 291 353 metadata.setEnabled(ready); 292 tools.setEnabled(ready);293 if (ready) {294 Gatherer.c_man.undo.registerRedoSource(edit_redo);295 Gatherer.c_man.undo.registerUndoSource(edit_undo);354 // tools.setEnabled(ready); 355 if (ready) { 356 // Gatherer.c_man.undo.registerRedoSource(edit_redo); 357 // Gatherer.c_man.undo.registerUndoSource(edit_undo); 296 358 } 297 359 } … … 299 361 /** Once a quit has been requested by the user, prevent any further menu selections. */ 300 362 public void exit() { 363 file.setEnabled(false); 301 364 edit.setEnabled(false); 302 file.setEnabled(false); 365 metadata.setEnabled(false); 366 // tools.setEnabled(false); 303 367 help.setEnabled(false); 304 metadata.setEnabled(false);305 368 } 306 369 … … 308 371 ///ystem.err.println("**** Set suffix: " + metaaudit_suffix); 309 372 if(metaaudit_suffix == null) { 310 metadata_view.setText( get("Menu.Metadata_View") + " " +get("FileActions.No_Selection"));373 metadata_view.setText(Dictionary.newget("Menu.Metadata_View") + " " + Dictionary.newget("FileActions.No_Selection")); 311 374 metadata_view.setEnabled(false); 312 375 } 313 376 else { 314 377 ///ystem.err.println("Set metadata view suffix: " + metaaudit_suffix); 315 metadata_view.setText( get("Menu.Metadata_View") + " " + metaaudit_suffix);378 metadata_view.setText(Dictionary.newget("Menu.Metadata_View") + " " + metaaudit_suffix); 316 379 metadata_view.setEnabled(true); 317 380 } … … 332 395 JMenuItem selected; 333 396 if(current_tab != -1) { 334 397 // Remove the image 335 398 selected = help.getItem(current_tab); 336 399 if(selected != null) { … … 345 408 selected = null; 346 409 } 347 348 /** Retrieves a key from the Dictionary, using no extra arguments. 349 * @param key A String which maps to a certain phrase from the Dictionary. 350 * @return The String the matches the key or an error String if no match 351 * found. 352 */ 353 private String get(String key) { 354 // return get(key, null); 355 return Gatherer.dictionary.get(key, (String[]) null); 356 } 357 358 /** Retrieves a key from the Dictionary, providing extra arguments to 359 * be inserted using a String array. 360 * @param key A String which maps to a certain phrase from the Dictionary. 361 * @param args A String array containing further arguments (such as 362 * formatting instructions and variable values) to be taken into account 363 * when Dictionary creates the return String. 364 * @return The String the matches the key or an error String if no match 365 * found. 366 */ 367 /* private String get(String key, String args[]) { 368 if(key.indexOf('.') == -1) { 369 key = "Menu." + key; 370 } 371 return Gatherer.dictionary.get(key, args); 372 } */ 410 373 411 374 412 public class MagicMenuItem 375 413 extends JMenuItem { 376 414 377 415 private boolean can_enable; 378 416 private boolean should_enable; … … 386 424 387 425 public void setCanEnable(boolean can_enable) { 388 ///ystem.err.println("can_enable = " + can_enable);389 426 this.can_enable = can_enable; 390 427 if (can_enable) { 391 ///ystem.err.println("setEnable(" + should_enable + ")");392 428 super.setEnabled(should_enable); 393 429 } … … 398 434 399 435 public void setEnabled(boolean should_enable) { 400 ///ystem.err.println("should_enable = " + should_enable);401 436 this.should_enable = should_enable; 402 if(can_enable) { 403 ///ystem.err.println("setEnable(" + should_enable + ")"); 437 if (can_enable) { 404 438 super.setEnabled(should_enable); 405 439 } 406 440 } 407 441 } 408 409 private class NonFocusMenu410 extends JMenu {411 public NonFocusMenu(String name) {412 super(name);413 setFocusPainted(false);414 }415 416 public boolean isFocusable(){417 return false;418 }419 420 public void requestFocus(){421 }422 423 public boolean requestFocus(boolean t){424 return false;425 }426 427 public void setFocusable(boolean f) {428 }429 }430 431 private class NonFocusMenuItem432 extends JMenuItem {433 public NonFocusMenuItem(String name, int key) {434 super(name, key);435 setFocusPainted(false);436 }437 438 public boolean isFocusable(){439 return false;440 }441 442 public void requestFocus(){443 }444 445 public boolean requestFocus(boolean t){446 return false;447 }448 449 public void setFocusable(boolean f) {450 }451 452 }453 442 }
Note:
See TracChangeset
for help on using the changeset viewer.