4
package latexDraw.ui.components;
6
import java.awt.event.InputEvent;
7
import java.awt.event.KeyEvent;
8
import java.util.Vector;
10
import javax.swing.ButtonGroup;
11
import javax.swing.JCheckBoxMenuItem;
12
import javax.swing.JMenu;
13
import javax.swing.JMenuBar;
14
import javax.swing.JMenuItem;
15
import javax.swing.JRadioButtonMenuItem;
16
import javax.swing.KeyStroke;
18
import latexDraw.lang.LaTeXDrawLang;
19
import latexDraw.ui.CodePanel;
20
import latexDraw.ui.DrawPanel;
21
import latexDraw.ui.LaTeXDrawFrame;
22
import latexDraw.ui.dialog.ExceptionFrameDialog;
23
import latexDraw.ui.listeners.MenusListener;
24
import latexDraw.ui.listeners.RecentFilesListener;
25
import latexDraw.util.LaTeXDrawResources;
29
* Defines the latexdraw menu bar..<br>
31
* This file is part of LaTeXDraw<br>
32
* Copyright (c) 2005-2008 Arnaud BLOUIN<br>
34
* LaTeXDraw is free software; you can redistribute it and/or modify
35
* it under the terms of the GNU General Public License as published by
36
* the Free Software Foundation; either version 2 of the License, or
37
* (at your option) any later version.<br>
39
* LaTeXDraw is distributed without any warranty; without even the
40
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
41
* PURPOSE. See the GNU General Public License for more details.<br>
44
* @author Arnaud BLOUIN<br>
47
public class LMenuBar extends JMenuBar
49
private static final long serialVersionUID = 1L;
51
/** The menu which allows to import templates */
52
protected MenuTemplate menuTemplate;
54
/** Allows to cut a figure */
55
protected JMenuItem cutMenu;
57
/** Allows to paste a figure */
58
protected JMenuItem pasteMenu;
60
/** Allows to copy a figure */
61
protected JMenuItem copyMenu;
63
/** This menu allows to export the drawing as a template */
64
protected JMenuItem exportTemplateMenu;
66
/** Allows to undo actions */
67
protected JMenuItem undoMenu;
69
/** Allows to redo actions */
70
protected JMenuItem redoMenu;
72
/** This menu allows the user to export either the pstricks code or the drawing as jpg picture */
73
protected JMenu exportAsMenu;
75
protected JMenu recentFilesMenu;
77
/** The menu "drawing" */
78
protected JMenu drawMenu;
80
/** This menu allows the user to set his preferences */
81
protected JMenuItem preferencesMenu;
83
/** This menu allows the set the properties of the selected figure */
84
protected JMenuItem propertiesFigureMenu;
86
/** This menu allows the user to delete a figure in the drawing. */
87
protected JMenuItem deleteFigure;
89
/** This menu allows the user to see or not the borders of the drawing */
90
protected JCheckBoxMenuItem displayBorders;
92
/** This menu allows the user to see or not the X-scale */
93
protected JCheckBoxMenuItem displayXScale;
95
/** This menu allows the user to see or not the Y-scale */
96
protected JCheckBoxMenuItem displayYScale;
98
/** This menu allows the user to see or not the grids */
99
protected JCheckBoxMenuItem displayGrid;
101
protected JCheckBoxMenuItem displayPersoGrid;
103
/** This menu allows the user to set visible or not the code panel */
104
protected JCheckBoxMenuItem displayCodePanel;
106
/** This menu allows to activate the automatic adjustment of the borders of the drawing */
107
protected JCheckBoxMenuItem autoAdjustBorders;
109
/** The button of the menubar to draw polygons */
110
protected JRadioButtonMenuItem menuPoly;
112
/** The button of the menubar to draw lines */
113
protected JRadioButtonMenuItem menuLine;
115
/** The button of the menubar to draw rectangles */
116
protected JRadioButtonMenuItem menuRect;
118
/** The button of the menubar to draw squares */
119
protected JRadioButtonMenuItem menuSquare;
121
/** The button of the menubar to draw dots */
122
protected JRadioButtonMenuItem menuDot;
124
/** The button of the menubar to draw rhombus */
125
protected JRadioButtonMenuItem menuRhombus;
127
/** The button of the menubar to draw triangles */
128
protected JRadioButtonMenuItem menuTriangle;
130
/** The button of the menubar to draw joined lines */
131
protected JRadioButtonMenuItem menuJoinedLines;
133
/** The button of the menubar to draw circles */
134
protected JRadioButtonMenuItem menuCircle;
136
protected JRadioButtonMenuItem menuAxes;
138
/** The button of the menubar to draw chords */
139
protected JRadioButtonMenuItem menuChord;
141
/** The button of the menubar to draw ellipses */
142
protected JRadioButtonMenuItem menuEllipse;
144
/** The button of the menubar to draw BĆ©zier curves */
145
protected JRadioButtonMenuItem menuBezierCurve;
147
protected JRadioButtonMenuItem menuClosedBezierCurve;
149
/** The button of the menubar to select figures */
150
protected JRadioButtonMenuItem menuSelect;
152
/** The button of the menubar to draw arcs */
153
protected JRadioButtonMenuItem menuArc;
155
/** The button of the menubar to draw wedges */
156
protected JRadioButtonMenuItem menuWedge;
158
/** The button of the menubar to draw texts */
159
protected JRadioButtonMenuItem menuText;
161
/** The button of the menubar to draw akin points */
162
protected JRadioButtonMenuItem menuPointsAkin;
164
/** The button of the menubar to draw grids */
165
protected JRadioButtonMenuItem menuGrid;
166
protected JCheckBoxMenuItem menuAutoUpdate;
167
protected JMenuItem menuReloadCode;
168
protected JMenuItem updateToGridMenu;
170
protected LaTeXDrawFrame parentFrame;
173
public LMenuBar(LaTeXDrawFrame p)
178
throw new IllegalArgumentException();
182
MenusListener ml = parentFrame.getMenuListener();
183
ButtonGroup drawMenuGroup = new ButtonGroup();
185
JMenu fileMenu = new JMenu(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.88")); //$NON-NLS-1$
186
JMenu editMenu = new JMenu(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.89")); //$NON-NLS-1$
187
JMenu displayM = new JMenu(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.90")); //$NON-NLS-1$
188
drawMenu = new JMenu(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.91")); //$NON-NLS-1$
189
JMenu insertMenu = new JMenu(LaTeXDrawLang.getString1_6("LaTeXDrawFrame.10")); //$NON-NLS-1$
190
JMenu codeMenu = new JMenu(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.92")); //$NON-NLS-1$
191
JMenu helpMenu = new JMenu(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.93")); //$NON-NLS-1$
194
undoMenu = new JMenuItem(LaTeXDrawResources.LABEL_UNDO, KeyEvent.VK_Z);
195
undoMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
196
undoMenu.setIcon(LaTeXDrawResources.undoIcon);
197
undoMenu.addActionListener(ml);
198
undoMenu.setActionCommand(LaTeXDrawResources.LABEL_UNDO);
199
editMenu.add(undoMenu);
201
redoMenu = new JMenuItem(LaTeXDrawResources.LABEL_REDO, KeyEvent.VK_Y);
202
redoMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,InputEvent.CTRL_MASK));
203
redoMenu.setIcon(LaTeXDrawResources.redoIcon);
204
redoMenu.addActionListener(ml);
205
redoMenu.setActionCommand(LaTeXDrawResources.LABEL_REDO);
206
editMenu.add(redoMenu);
208
editMenu.addSeparator();
210
copyMenu = new JMenuItem(LaTeXDrawResources.LABEL_COPY, KeyEvent.VK_C);
211
copyMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
212
copyMenu.setIcon(LaTeXDrawResources.copyIcon);
213
copyMenu.addActionListener(ml);
214
copyMenu.setActionCommand(LaTeXDrawResources.LABEL_COPY);
215
editMenu.add(copyMenu);
216
copyMenu.setEnabled(false);
218
cutMenu = new JMenuItem(LaTeXDrawResources.LABEL_CUT, KeyEvent.VK_X);
219
cutMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
220
cutMenu.setIcon(LaTeXDrawResources.cutIcon);
221
cutMenu.addActionListener(ml);
222
cutMenu.setActionCommand(LaTeXDrawResources.LABEL_CUT);
223
editMenu.add(cutMenu);
224
cutMenu.setEnabled(false);
226
pasteMenu = new JMenuItem(LaTeXDrawResources.LABEL_PASTE, KeyEvent.VK_V);
227
pasteMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
228
pasteMenu.setIcon(LaTeXDrawResources.pasteIcon);
229
pasteMenu.addActionListener(ml);
230
pasteMenu.setActionCommand(LaTeXDrawResources.LABEL_PASTE);
231
editMenu.add(pasteMenu);
232
pasteMenu.setEnabled(false);
234
menu = new JMenuItem(LaTeXDrawResources.LABEL_NEW, KeyEvent.VK_N);
235
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
236
menu.setIcon(LaTeXDrawResources.newIcon);
237
menu.addActionListener(ml);
238
menu.setActionCommand(LaTeXDrawResources.LABEL_NEW);
241
menu = new JMenuItem(LaTeXDrawResources.LABEL_NEW_WITH_SEL);
242
menu.setIcon(LaTeXDrawResources.newIcon);
243
menu.addActionListener(ml);
244
menu.setActionCommand(LaTeXDrawResources.LABEL_NEW_WITH_SEL);
247
menu = new JMenuItem(LaTeXDrawResources.LABEL_OPEN, KeyEvent.VK_O);
248
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
249
menu.setIcon(LaTeXDrawResources.openIcon);
250
menu.addActionListener(ml);
251
menu.setActionCommand(LaTeXDrawResources.LABEL_OPEN);
254
menu = new JMenuItem(LaTeXDrawResources.LABEL_SAVE, KeyEvent.VK_S);
255
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
256
menu.setIcon(LaTeXDrawResources.saveIcon);
257
menu.addActionListener(ml);
258
menu.setActionCommand(LaTeXDrawResources.LABEL_SAVE);
261
menu = new JMenuItem(LaTeXDrawResources.LABEL_SAVE_AS, KeyEvent.VK_A);
262
menu.setIcon(LaTeXDrawResources.saveAsIcon);
263
menu.addActionListener(ml);
264
menu.setActionCommand(LaTeXDrawResources.LABEL_SAVE_AS);
267
recentFilesMenu = new JMenu(LaTeXDrawResources.LABEL_RECENT_FILES);
268
recentFilesMenu.setIcon(LaTeXDrawResources.emptyIcon);
269
recentFilesMenu.setActionCommand(LaTeXDrawResources.LABEL_RECENT_FILES);
270
fileMenu.add(recentFilesMenu);
272
fileMenu.addSeparator();
274
JMenu importM = new JMenu(LaTeXDrawResources.LABEL_IMPORT);
275
importM.setIcon(LaTeXDrawResources.importIcon);
276
fileMenu.add(importM);
278
menu = new JMenuItem(LaTeXDrawResources.LABEL_IMPORT_TEX, KeyEvent.VK_X);
279
menu.setIcon(LaTeXDrawResources.insertPSTricksIcon);
280
menu.addActionListener(ml);
281
menu.setActionCommand(LaTeXDrawResources.LABEL_IMPORT_TEX);
284
exportAsMenu = new JMenu(LaTeXDrawResources.LABEL_EXPORT_AS);
285
exportAsMenu.setIcon(LaTeXDrawResources.exportIcon);
286
fileMenu.add(exportAsMenu);
287
exportAsMenu.setEnabled(false);
289
menu = new JMenuItem(LaTeXDrawResources.LABEL_EXPORT_TRICKS, KeyEvent.VK_T);
290
menu.addActionListener(ml);
291
menu.setActionCommand(LaTeXDrawResources.LABEL_EXPORT_TRICKS);
292
exportAsMenu.add(menu);
294
menu = new JMenuItem(LaTeXDrawResources.LABEL_EXPORT_JPG, KeyEvent.VK_J);
295
menu.addActionListener(ml);
296
menu.setActionCommand(LaTeXDrawResources.LABEL_EXPORT_JPG);
297
exportAsMenu.add(menu);
299
menu = new JMenuItem(LaTeXDrawResources.LABEL_EXPORT_PNG, KeyEvent.VK_P);
300
menu.addActionListener(ml);
301
menu.setActionCommand(LaTeXDrawResources.LABEL_EXPORT_PNG);
302
exportAsMenu.add(menu);
304
menu = new JMenuItem(LaTeXDrawResources.LABEL_EXPORT_EPS, KeyEvent.VK_E);
305
menu.addActionListener(ml);
306
menu.setActionCommand(LaTeXDrawResources.LABEL_EXPORT_EPS);
307
exportAsMenu.add(menu);
309
menu = new JMenuItem(LaTeXDrawResources.LABEL_EXPORT_BMP, KeyEvent.VK_B);
310
menu.addActionListener(ml);
311
menu.setActionCommand(LaTeXDrawResources.LABEL_EXPORT_BMP);
312
exportAsMenu.add(menu);
314
menu = new JMenuItem(LaTeXDrawResources.LABEL_EXPORT_PPM, KeyEvent.VK_N);
315
menu.addActionListener(ml);
316
menu.setActionCommand(LaTeXDrawResources.LABEL_EXPORT_PPM);
317
exportAsMenu.add(menu);
319
exportTemplateMenu = new JMenuItem(LaTeXDrawResources.LABEL_TEMPLATE_EXPORT);
320
exportTemplateMenu.addActionListener(ml);
321
exportTemplateMenu.setActionCommand(LaTeXDrawResources.LABEL_TEMPLATE_EXPORT);
322
exportAsMenu.add(exportTemplateMenu);
323
exportTemplateMenu.setEnabled(false);
325
fileMenu.addSeparator();
327
menu = new JMenuItem(LaTeXDrawResources.LABEL_BATCH_CONVERT, KeyEvent.VK_V);
328
menu.addActionListener(ml);
329
menu.setIcon(LaTeXDrawResources.copyIcon);
330
menu.setActionCommand(LaTeXDrawResources.LABEL_BATCH_CONVERT);
333
fileMenu.addSeparator();
335
preferencesMenu = new JMenuItem(LaTeXDrawResources.LABEL_PREFERENCES, KeyEvent.VK_P);
336
preferencesMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
337
preferencesMenu.setIcon(LaTeXDrawResources.preferencesIcon);
338
preferencesMenu.addActionListener(parentFrame);
339
preferencesMenu.setActionCommand(LaTeXDrawResources.LABEL_PREFERENCES);
340
fileMenu.add(preferencesMenu);
342
fileMenu.addSeparator();
344
menu = new JMenuItem(LaTeXDrawResources.LABEL_PRINT_CODE, KeyEvent.VK_E);
345
menu.setIcon(LaTeXDrawResources.printIcon);
346
menu.addActionListener(ml);
347
menu.setActionCommand(LaTeXDrawResources.LABEL_PRINT_CODE);
350
menu = new JMenuItem(LaTeXDrawResources.LABEL_PRINT_DRAW, KeyEvent.VK_D);
351
menu.setIcon(LaTeXDrawResources.printIcon);
352
menu.addActionListener(ml);
353
menu.setActionCommand(LaTeXDrawResources.LABEL_PRINT_DRAW);
356
fileMenu.addSeparator();
358
menu = new JMenuItem(LaTeXDrawResources.LABEL_QUIT, KeyEvent.VK_Q);
359
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,InputEvent.CTRL_MASK));
360
menu.setIcon(LaTeXDrawResources.emptyIcon);
361
menu.addActionListener(ml);
362
menu.setActionCommand(LaTeXDrawResources.LABEL_QUIT);
365
menu = new JMenuItem(LaTeXDrawResources.LABEL_HELP, KeyEvent.VK_H);
366
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0));
367
menu.setIcon(LaTeXDrawResources.helpIcon);
368
menu.addActionListener(parentFrame);
369
menu.setActionCommand(LaTeXDrawResources.LABEL_HELP);
372
menu = new JMenuItem(LaTeXDrawLang.getString1_9("LaTeXDrawFrame.3"), KeyEvent.VK_S); //$NON-NLS-1$
373
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0));
374
menu.setIcon(LaTeXDrawResources.helpIcon);
375
menu.addActionListener(ml);
376
menu.setActionCommand(MenusListener.ACTION_CMD_SHORTCUTS);
379
helpMenu.addSeparator();
381
if(LaTeXDrawFrame.WITH_UPDATE)
383
menu = new JMenuItem(LaTeXDrawLang.getString1_9("LaTeXDrawFrame.4"), KeyEvent.VK_U); //$NON-NLS-1$
384
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0));
385
menu.setIcon(LaTeXDrawResources.updateIcon);
386
menu.addActionListener(ml);
387
menu.setActionCommand(MenusListener.LABEL_CHECK_UPDATE);
390
helpMenu.addSeparator();
393
menu = new JMenuItem(LaTeXDrawResources.LABEL_ABOUT, KeyEvent.VK_A);
394
menu.setIcon(LaTeXDrawResources.aboutIcon);
395
menu.addActionListener(parentFrame);
396
menu.setActionCommand(LaTeXDrawResources.LABEL_ABOUT);
399
drawMenu.add(createTemplateMenu());
400
drawMenu.addSeparator();
402
menu = new JMenu(LaTeXDrawLang.getString1_9("LaTeXDrawFrame.5")); //$NON-NLS-1$
403
menu.setIcon(LaTeXDrawResources.emptyIcon);
406
menuLine = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_LINE, LaTeXDrawResources.lineIcon);
407
menuLine.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, 0));
408
menuLine.setMnemonic(KeyEvent.VK_L);
409
menuLine.addActionListener(ml);
410
menuLine.setActionCommand(LaTeXDrawResources.LABEL_LINE);
412
drawMenuGroup.add(menuLine);
414
menuJoinedLines = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_JOINED_LINES, LaTeXDrawResources.joinedLinesIcon);
415
menuJoinedLines.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_J,0));
416
menuJoinedLines.setMnemonic(KeyEvent.VK_J);
417
menuJoinedLines.addActionListener(ml);
418
menuJoinedLines.setActionCommand(LaTeXDrawResources.LABEL_JOINED_LINES);
419
menu.add(menuJoinedLines);
420
drawMenuGroup.add(menuJoinedLines);
422
menuPoly = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_POLY, LaTeXDrawResources.polygonIcon);
423
menuPoly.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,0));
424
menuPoly.setMnemonic(KeyEvent.VK_P);
425
menuPoly.addActionListener(ml);
426
menuPoly.setActionCommand(LaTeXDrawResources.LABEL_POLY);
428
drawMenuGroup.add(menuPoly);
429
menuPoly.setSelected(false);
431
menuDot = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_DOT, LaTeXDrawResources.dotIcon);
432
menuDot.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,0));
433
menuDot.setMnemonic(KeyEvent.VK_D);
434
menuDot.addActionListener(ml);
435
menuDot.setActionCommand(LaTeXDrawResources.LABEL_DOT);
437
drawMenuGroup.add(menuDot);
438
menuDot.setSelected(false);
440
menuRect = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_RECT, LaTeXDrawResources.rectIcon);
441
menuRect.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,0));
442
menuRect.setMnemonic(KeyEvent.VK_R);
443
menuRect.addActionListener(ml);
444
menuRect.setActionCommand(LaTeXDrawResources.LABEL_RECT);
446
drawMenuGroup.add(menuRect);
447
menuRect.setSelected(false);
449
menuSquare = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_SQUARE, LaTeXDrawResources.squareIcon);
450
menuSquare.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,0));
451
menuSquare.setMnemonic(KeyEvent.VK_S);
452
menuSquare.addActionListener(ml);
453
menuSquare.setActionCommand(LaTeXDrawResources.LABEL_SQUARE);
454
menu.add(menuSquare);
455
drawMenuGroup.add(menuSquare);
456
menuSquare.setSelected(false);
458
menuRhombus = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_RHOMBUS, LaTeXDrawResources.rhombusIcon);
459
menuRhombus.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,0));
460
menuRhombus.setMnemonic(KeyEvent.VK_H);
461
menuRhombus.addActionListener(ml);
462
menuRhombus.setActionCommand(LaTeXDrawResources.LABEL_RHOMBUS);
463
menu.add(menuRhombus);
464
drawMenuGroup.add(menuRhombus);
465
menuRhombus.setSelected(false);
467
menuTriangle = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_TRIANGLE, LaTeXDrawResources.triangleIcon);
468
menuTriangle.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,0));
469
menuTriangle.setMnemonic(KeyEvent.VK_T);
470
menuTriangle.addActionListener(ml);
471
menuTriangle.setActionCommand(LaTeXDrawResources.LABEL_TRIANGLE);
472
menu.add(menuTriangle);
473
drawMenuGroup.add(menuTriangle);
474
menuTriangle.setSelected(false);
476
menuEllipse = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_ELLIPSE, LaTeXDrawResources.ellipseIcon);
477
menuEllipse.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,0));
478
menuEllipse.setMnemonic(KeyEvent.VK_E);
479
menuEllipse.addActionListener(ml);
480
menuEllipse.setActionCommand(LaTeXDrawResources.LABEL_ELLIPSE);
481
menu.add(menuEllipse);
482
drawMenuGroup.add(menuEllipse);
483
menuEllipse.setSelected(false);
485
menuCircle = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_CIRCLE, LaTeXDrawResources.circleIcon);
486
menuCircle.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,0));
487
menuCircle.setMnemonic(KeyEvent.VK_C);
488
menuCircle.addActionListener(ml);
489
menuCircle.setActionCommand(LaTeXDrawResources.LABEL_CIRCLE);
490
menu.add(menuCircle);
491
drawMenuGroup.add(menuCircle);
492
menuCircle.setSelected(false);
494
menuArc = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_ARC, LaTeXDrawResources.arcIcon);
495
menuArc.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,0));
496
menuArc.setMnemonic(KeyEvent.VK_A);
497
menuArc.addActionListener(ml);
498
menuArc.setActionCommand(LaTeXDrawResources.LABEL_ARC);
500
drawMenuGroup.add(menuArc);
501
menuArc.setSelected(false);
503
menuWedge = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_WEDGE, LaTeXDrawResources.wedgeIcon);
504
menuWedge.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,0));
505
menuWedge.setMnemonic(KeyEvent.VK_W);
506
menuWedge.addActionListener(ml);
507
menuWedge.setActionCommand(LaTeXDrawResources.LABEL_WEDGE);
509
drawMenuGroup.add(menuWedge);
510
menuWedge.setSelected(false);
512
menuChord = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_CHORD, LaTeXDrawResources.chordIcon);
513
menuChord.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,0));
514
menuChord.setMnemonic(KeyEvent.VK_O);
515
menuChord.addActionListener(ml);
516
menuChord.setActionCommand(LaTeXDrawResources.LABEL_CHORD);
518
drawMenuGroup.add(menuChord);
519
menuChord.setSelected(false);
521
menuBezierCurve = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_BEZIER_CURVE, LaTeXDrawResources.bezierCurveIcon);
522
menuBezierCurve.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,0));
523
menuBezierCurve.setMnemonic(KeyEvent.VK_B);
524
menuBezierCurve.addActionListener(ml);
525
menuBezierCurve.setActionCommand(LaTeXDrawResources.LABEL_BEZIER_CURVE);
526
menu.add(menuBezierCurve);
527
drawMenuGroup.add(menuBezierCurve);
528
menuBezierCurve.setSelected(false);
530
menuClosedBezierCurve = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_CLOSED_BEZIER_CURVE, LaTeXDrawResources.closedBezierIcon);
531
menuClosedBezierCurve.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,0));
532
menuClosedBezierCurve.setMnemonic(KeyEvent.VK_B);
533
menuClosedBezierCurve.addActionListener(ml);
534
menuClosedBezierCurve.setActionCommand(LaTeXDrawResources.LABEL_CLOSED_BEZIER_CURVE);
535
menu.add(menuClosedBezierCurve);
536
drawMenuGroup.add(menuClosedBezierCurve);
537
menuClosedBezierCurve.setSelected(false);
539
menuGrid = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_GRID, LaTeXDrawResources.gridIcon);
540
menuGrid.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,0));
541
menuGrid.setMnemonic(KeyEvent.VK_G);
542
menuGrid.addActionListener(ml);
543
menuGrid.setActionCommand(LaTeXDrawResources.LABEL_GRID);
545
drawMenuGroup.add(menuGrid);
546
menuGrid.setSelected(false);
548
menuAxes = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_AXES, LaTeXDrawResources.axesIcon);
549
menuAxes.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,0));
550
menuAxes.setMnemonic(KeyEvent.VK_Z);
551
menuAxes.addActionListener(ml);
552
menuAxes.setActionCommand(LaTeXDrawResources.LABEL_AXES);
554
drawMenuGroup.add(menuAxes);
555
menuAxes.setSelected(false);
557
menuPointsAkin = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_POINTS_AKIN, LaTeXDrawResources.pointsAkinIcon);
558
menuPointsAkin.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K,0));
559
menuPointsAkin.setMnemonic(KeyEvent.VK_K);
560
menuPointsAkin.addActionListener(ml);
561
menuPointsAkin.setActionCommand(LaTeXDrawResources.LABEL_POINTS_AKIN);
562
menu.add(menuPointsAkin);
563
drawMenuGroup.add(menuPointsAkin);
564
menuPointsAkin.setSelected(false);
566
menuText = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_TEXT, LaTeXDrawResources.textIcon);
567
menuText.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,0));
568
menuText.setMnemonic(KeyEvent.VK_X);
569
menuText.addActionListener(ml);
570
menuText.setActionCommand(LaTeXDrawResources.LABEL_TEXT);
572
drawMenuGroup.add(menuText);
573
menuText.setSelected(false);
575
menuSelect = new JRadioButtonMenuItem(LaTeXDrawResources.LABEL_SELECT_FIGURE, LaTeXDrawResources.selectIcon);
576
menuSelect.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,0));
577
menuSelect.addActionListener(ml);
578
menuSelect.setActionCommand(LaTeXDrawResources.LABEL_SELECT_FIGURE);
579
drawMenu.add(menuSelect);
580
drawMenuGroup.add(menuSelect);
581
menuSelect.setSelected(true);
583
deleteFigure = new JMenuItem(LaTeXDrawResources.LABEL_DELETE, LaTeXDrawResources.delIcon);
584
deleteFigure.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
585
deleteFigure.addActionListener(ml);
586
deleteFigure.setActionCommand(LaTeXDrawResources.LABEL_DELETE);
587
deleteFigure.setEnabled(false);
588
drawMenu.add(deleteFigure);
590
updateToGridMenu = new JMenuItem(DrawPanel.LABEL_UPDATE_TO_GRID, LaTeXDrawResources.emptyIcon);
591
updateToGridMenu.setActionCommand(DrawPanel.ACTION_CMD_UPDATETOGRID);
592
updateToGridMenu.addActionListener(ml);
593
drawMenu.add(updateToGridMenu);
595
menu = new JMenuItem(LaTeXDrawLang.getString1_9("LaTeXDrawFrame.6"), LaTeXDrawResources.emptyIcon); //$NON-NLS-1$
596
menu.setToolTipText(LaTeXDrawLang.getString1_9("LaTeXDrawFrame.7")); //$NON-NLS-1$
597
menu.setActionCommand(MenusListener.ACTION_VISIBLE_ALL_FIGURES);
598
menu.addActionListener(ml);
600
drawMenu.addSeparator();
602
propertiesFigureMenu = new JMenuItem(LaTeXDrawResources.LABEL_FIGURE_PROPERTIES, LaTeXDrawResources.propertiesIcon);
603
propertiesFigureMenu.addActionListener(ml);
604
propertiesFigureMenu.setActionCommand(LaTeXDrawResources.LABEL_FIGURE_PROPERTIES);
605
propertiesFigureMenu.setEnabled(false);
606
drawMenu.add(propertiesFigureMenu);
608
menu = new JMenuItem(LaTeXDrawResources.LABEL_DRAW_PROPERTIES, LaTeXDrawResources.drawingPropIcon);
609
menu.addActionListener(parentFrame);
610
menu.setActionCommand(LaTeXDrawResources.LABEL_DRAW_PROPERTIES);
613
drawMenu.addSeparator();
615
displayBorders = new JCheckBoxMenuItem(LaTeXDrawResources.LABEL_DISPLAY_BORDERS, LaTeXDrawResources.bordersIcon);
616
displayBorders.addActionListener(ml);
617
displayBorders.setActionCommand(LaTeXDrawResources.LABEL_DISPLAY_BORDERS);
618
displayBorders.setSelected(false);
619
drawMenu.add(displayBorders);
621
autoAdjustBorders = new JCheckBoxMenuItem(LaTeXDrawResources.LABEL_AUTO_ADJUST_BORDERS, LaTeXDrawResources.autoBordersIcon);
622
autoAdjustBorders.addActionListener(ml);
623
autoAdjustBorders.setActionCommand(LaTeXDrawResources.LABEL_AUTO_ADJUST_BORDERS);
624
autoAdjustBorders.setSelected(true);
625
drawMenu.add(autoAdjustBorders);
628
displayXScale = new JCheckBoxMenuItem(LaTeXDrawResources.LABEL_DISPLAY_XSCALE, LaTeXDrawResources.emptyIcon);
629
displayXScale.addActionListener(ml);
630
displayXScale.setActionCommand(LaTeXDrawResources.LABEL_DISPLAY_XSCALE);
631
displayXScale.setSelected(LaTeXDrawFrame.DEFAULT_DISPLAY_XSCALE);
632
displayM.add(displayXScale);
634
displayYScale = new JCheckBoxMenuItem(LaTeXDrawResources.LABEL_DISPLAY_YSCALE, LaTeXDrawResources.emptyIcon);
635
displayYScale.addActionListener(ml);
636
displayYScale.setActionCommand(LaTeXDrawResources.LABEL_DISPLAY_YSCALE);
637
displayYScale.setSelected(LaTeXDrawFrame.DEFAULT_DISPLAY_YSCALE);
638
displayM.add(displayYScale);
640
JMenu menuGrill = new JMenu(LaTeXDrawLang.getDialogFrameString("PreferencesFrame.grid")); //$NON-NLS-1$
641
menuGrill.setIcon(LaTeXDrawResources.displayGridIcon);
643
displayGrid = new JCheckBoxMenuItem(LaTeXDrawResources.LABEL_DISPLAY_GRID, LaTeXDrawResources.emptyIcon);
644
displayGrid.setToolTipText(LaTeXDrawLang.getString1_8("LaTeXDrawFrame.10")); //$NON-NLS-1$
645
displayGrid.addActionListener(parentFrame);
646
displayGrid.setActionCommand(LaTeXDrawResources.LABEL_DISPLAY_GRID);
647
displayGrid.setSelected(LaTeXDrawFrame.DEFAULT_DISPLAY_GRID && MagneticGrid.DEFAULT_TYPE!=MagneticGrid.TYPE_PERSONAL);
648
menuGrill.add(displayGrid);
649
displayM.add(menuGrill);
651
displayPersoGrid = new JCheckBoxMenuItem(LaTeXDrawResources.LABEL_DISPLAY_PERSO_GRID, LaTeXDrawResources.emptyIcon);
652
displayPersoGrid.setToolTipText(LaTeXDrawLang.getString1_8("LaTeXDrawFrame.11")); //$NON-NLS-1$
653
displayPersoGrid.addActionListener(parentFrame);
654
displayPersoGrid.setActionCommand(LaTeXDrawResources.LABEL_DISPLAY_PERSO_GRID);
655
displayPersoGrid.setSelected(LaTeXDrawFrame.DEFAULT_DISPLAY_GRID && MagneticGrid.DEFAULT_TYPE==MagneticGrid.TYPE_PERSONAL);
656
menuGrill.add(displayPersoGrid);
658
displayCodePanel = new JCheckBoxMenuItem(LaTeXDrawResources.LABEL_DISPLAY_CODE_PANEL, LaTeXDrawResources.emptyIcon);
659
displayCodePanel.addActionListener(parentFrame);
660
displayCodePanel.setActionCommand(LaTeXDrawResources.LABEL_DISPLAY_CODE_PANEL);
661
displayCodePanel.setSelected(LaTeXDrawFrame.DEFAULT_DISPLAY_CODEPANEL);
662
displayCodePanel.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
663
displayM.add(displayCodePanel);
665
displayM.addSeparator();
667
menu = new JMenuItem(LaTeXDrawResources.LABEL_ZOOM_IN, LaTeXDrawResources.zoomInIcon);
668
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ADD,0));
669
menu.setToolTipText(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.94")); //$NON-NLS-1$
670
menu.addActionListener(ml);
671
menu.setActionCommand(LaTeXDrawResources.LABEL_ZOOM_IN);
674
menu = new JMenuItem(LaTeXDrawResources.LABEL_ZOOM_OUT, LaTeXDrawResources.zoomOutIcon);
675
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT,0));
676
menu.setToolTipText(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.95")); //$NON-NLS-1$
677
menu.addActionListener(ml);
678
menu.setActionCommand(LaTeXDrawResources.LABEL_ZOOM_OUT);
681
menu = new JMenuItem(LaTeXDrawResources.LABEL_ZOOM_DEFAULT, LaTeXDrawResources.zoomDefaultIcon);
682
menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F9,0));
683
menu.setToolTipText(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.96")); //$NON-NLS-1$
684
menu.addActionListener(ml);
685
menu.setActionCommand(LaTeXDrawResources.LABEL_ZOOM_DEFAULT);
688
menu = new JMenuItem(LaTeXDrawResources.LABEL_INSERT_CODE, LaTeXDrawResources.insertPSTricksIcon);
689
menu.setToolTipText(LaTeXDrawLang.getString1_6("LaTeXDrawFrame.11")); //$NON-NLS-1$
690
menu.addActionListener(parentFrame);
691
menu.setActionCommand(LaTeXDrawResources.LABEL_INSERT_CODE);
692
insertMenu.add(menu);
694
menu = new JMenuItem(LaTeXDrawResources.LABEL_INSERT_PIX, LaTeXDrawResources.insertPicIcon);
695
menu.setToolTipText(LaTeXDrawLang.getString1_6("LaTeXDrawFrame.1")); //$NON-NLS-1$
696
menu.addActionListener(ml);
697
menu.setActionCommand(LaTeXDrawResources.LABEL_INSERT_PIX);
698
insertMenu.add(menu);
700
menu = new JMenuItem(LaTeXDrawResources.LABEL_COMMENTS, LaTeXDrawResources.commentIcon);
701
menu.addActionListener(parentFrame);
702
menu.setActionCommand(LaTeXDrawResources.LABEL_COMMENTS);
705
codeMenu.addSeparator();
707
menu = new JMenuItem(CodePanel.LABEL_COPY_ALL, LaTeXDrawResources.copyIcon);
708
menu.addActionListener(parentFrame.getCodePanel());
709
menu.setActionCommand(CodePanel.LABEL_COPY_ALL);
712
codeMenu.addSeparator();
714
menuAutoUpdate = new JCheckBoxMenuItem(CodePanel.LABEL_AUTO_UPDATE, LaTeXDrawResources.emptyIcon);
715
menuAutoUpdate.addActionListener(parentFrame.getCodePanel());
716
menuAutoUpdate.setToolTipText(LaTeXDrawLang.getOthersString("CodePanel.tip")); //$NON-NLS-1$
717
menuAutoUpdate.setActionCommand(CodePanel.LABEL_AUTO_UPDATE);
718
menuAutoUpdate.setSelected(CodePanel.DEFAULT_AUTO_UPDATE);
719
codeMenu.add(menuAutoUpdate);
721
menuReloadCode = new JMenuItem(CodePanel.LABEL_RELOAD, LaTeXDrawResources.reloadIcon);
722
menuReloadCode.addActionListener(parentFrame.getCodePanel());
723
menuReloadCode.setToolTipText(LaTeXDrawLang.getOthersString("CodePanel.updateCode")); //$NON-NLS-1$
724
menuReloadCode.setActionCommand(CodePanel.LABEL_RELOAD);
725
menuReloadCode.setSelected(!CodePanel.DEFAULT_AUTO_UPDATE);
726
codeMenu.add(menuReloadCode);
740
* Allows to create the menu "template".
741
* @return The menu template.
743
private JMenu createTemplateMenu()
747
menuTemplate = new MenuTemplate(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.103"), parentFrame); //$NON-NLS-1$
748
menuTemplate.setIcon(LaTeXDrawResources.emptyIcon);
752
parentFrame.setStatusBarText(LaTeXDrawLang.getStringLaTeXDrawFrame("LaTeXDrawFrame.105")); //$NON-NLS-1$
754
ExceptionFrameDialog.showExceptionDialog(e);
760
* @return the menuTemplate.
763
public MenuTemplate getMenuTemplate()
769
* @return the cutMenu.
772
public JMenuItem getCutMenu()
778
* @return the pasteMenu.
781
public JMenuItem getPasteMenu()
787
* @return the copyMenu.
790
public JMenuItem getCopyMenu()
796
* @return the exportTemplateMenu.
799
public JMenuItem getExportTemplateMenu()
801
return exportTemplateMenu;
805
* @return the undoMenu.
808
public JMenuItem getUndoMenu()
814
* @return the redoMenu.
817
public JMenuItem getRedoMenu()
823
* @return the exportAsMenu.
826
public JMenu getExportAsMenu()
832
* @return the recentFilesMenu.
835
public JMenu getRecentFilesMenu()
837
return recentFilesMenu;
841
* @return the drawMenu.
844
public JMenu getDrawMenu()
850
* @return the preferencesMenu.
853
public JMenuItem getPreferencesMenu()
855
return preferencesMenu;
859
* @return the propertiesFigureMenu.
862
public JMenuItem getPropertiesFigureMenu()
864
return propertiesFigureMenu;
868
* @return the deleteFigure.
871
public JMenuItem getDeleteFigure()
877
* @return the displayBorders.
880
public JCheckBoxMenuItem getDisplayBorders()
882
return displayBorders;
886
* @return the displayXScale.
889
public JCheckBoxMenuItem getDisplayXScale()
891
return displayXScale;
895
* @return the displayYScale.
898
public JCheckBoxMenuItem getDisplayYScale()
900
return displayYScale;
904
* @return the displayGrid.
907
public JCheckBoxMenuItem getDisplayGrid()
913
* @return the displayPersoGrid.
916
public JCheckBoxMenuItem getDisplayPersoGrid()
918
return displayPersoGrid;
922
* @return the displayCodePanel.
925
public JCheckBoxMenuItem getDisplayCodePanel()
927
return displayCodePanel;
931
* @return the autoAdjustBorders.
934
public JCheckBoxMenuItem getAutoAdjustBorders()
936
return autoAdjustBorders;
940
* @return the menuPoly.
943
public JRadioButtonMenuItem getMenuPoly()
949
* @return the menuLine.
952
public JRadioButtonMenuItem getMenuLine()
958
* @return the menuRect.
961
public JRadioButtonMenuItem getMenuRect()
967
* @return the menuSquare.
970
public JRadioButtonMenuItem getMenuSquare()
976
* @return the menuDot.
979
public JRadioButtonMenuItem getMenuDot()
985
* @return the menuRhombus.
988
public JRadioButtonMenuItem getMenuRhombus()
994
* @return the menuTriangle.
997
public JRadioButtonMenuItem getMenuTriangle()
1003
* @return the menuJoinedLines.
1006
public JRadioButtonMenuItem getMenuJoinedLines()
1008
return menuJoinedLines;
1012
* @return the menuCircle.
1015
public JRadioButtonMenuItem getMenuCircle()
1021
* @return the menuAxes.
1024
public JRadioButtonMenuItem getMenuAxes()
1030
* @return the menuChord.
1033
public JRadioButtonMenuItem getMenuChord()
1039
* @return the menuEllipse.
1042
public JRadioButtonMenuItem getMenuEllipse()
1048
* @return the menuBezierCurve.
1051
public JRadioButtonMenuItem getMenuBezierCurve()
1053
return menuBezierCurve;
1057
* @return the menuClosedBezierCurve.
1060
public JRadioButtonMenuItem getMenuClosedBezierCurve()
1062
return menuClosedBezierCurve;
1066
* @return the menuSelect.
1069
public JRadioButtonMenuItem getMenuSelect()
1075
* @return the menuArc.
1078
public JRadioButtonMenuItem getMenuArc()
1084
* @return the menuWedge.
1087
public JRadioButtonMenuItem getMenuWedge()
1093
* @return the menuText.
1096
public JRadioButtonMenuItem getMenuText()
1102
* @return the menuPointsAkin.
1105
public JRadioButtonMenuItem getMenuPointsAkin()
1107
return menuPointsAkin;
1111
* @return the menuGrid.
1114
public JRadioButtonMenuItem getMenuGrid()
1120
* @return the menuAutoUpdate.
1123
public JCheckBoxMenuItem getMenuAutoUpdate()
1125
return menuAutoUpdate;
1129
* @return the menuReloadCode.
1132
public JMenuItem getMenuReloadCode()
1134
return menuReloadCode;
1138
* @return the updateToGridMenu.
1141
public JMenuItem getUpdateToGridMenu()
1143
return updateToGridMenu;
1147
* @return the parentFrame.
1150
public LaTeXDrawFrame getParentFrame()
1158
* Updates the menus related to the grid.
1159
* @param displayed Defines if the grid is shown or not.
1160
* @param classic Defines if the grid is classic or defined by the user.
1163
public void setGridDisplayed(boolean displayed, boolean classic)
1167
displayGrid.setSelected(classic);
1168
displayPersoGrid.setSelected(!classic);
1172
displayGrid.setSelected(false);
1173
displayPersoGrid.setSelected(false);
1180
* Create the menu item of the menu "recent files".
1183
public void updateRecentFilesMenu()
1185
Vector<String> recentFilesName = parentFrame.getPreferencesFrame().getRecentFilesName();
1186
recentFilesMenu.removeAll();
1188
for(String fileName : recentFilesName)
1190
String shortName = fileName.substring(fileName.lastIndexOf(System.getProperty("file.separator"))+1);//$NON-NLS-1$
1191
JMenuItem menuItem = new JMenuItem(shortName);
1192
menuItem.setToolTipText(fileName);
1193
menuItem.addActionListener(parentFrame.getRecentFilesListener());
1194
menuItem.setActionCommand(RecentFilesListener.RECENT_PREFIX_CMD+fileName);
1195
recentFilesMenu.add(menuItem);
1198
recentFilesMenu.addSeparator();
1199
JMenuItem delMenu = new JMenuItem(LaTeXDrawLang.getString1_9("LaTeXDrawFrame.2"), LaTeXDrawResources.delIcon); //$NON-NLS-1$
1200
delMenu.setActionCommand(RecentFilesListener.ACTION_CMD_RECENT_CLEAR);
1201
delMenu.addActionListener(parentFrame.getRecentFilesListener());
1202
recentFilesMenu.add(delMenu);