38 |
|
|
39 |
package javax.swing.plaf.basic; |
package javax.swing.plaf.basic; |
40 |
|
|
41 |
|
import java.awt.Component; |
42 |
|
import java.awt.Container; |
43 |
|
import java.awt.Cursor; |
44 |
import java.awt.Dimension; |
import java.awt.Dimension; |
45 |
import java.awt.event.ContainerEvent; |
import java.awt.event.ContainerEvent; |
46 |
import java.awt.event.ContainerListener; |
import java.awt.event.ContainerListener; |
47 |
|
import java.awt.event.MouseEvent; |
48 |
import java.beans.PropertyChangeEvent; |
import java.beans.PropertyChangeEvent; |
49 |
import java.beans.PropertyChangeListener; |
import java.beans.PropertyChangeListener; |
50 |
|
|
51 |
import javax.swing.BoxLayout; |
import javax.swing.BoxLayout; |
52 |
import javax.swing.JComponent; |
import javax.swing.JComponent; |
53 |
import javax.swing.JMenuBar; |
import javax.swing.JMenuBar; |
54 |
|
import javax.swing.MenuElement; |
55 |
import javax.swing.UIDefaults; |
import javax.swing.UIDefaults; |
56 |
import javax.swing.UIManager; |
import javax.swing.UIManager; |
57 |
import javax.swing.event.ChangeEvent; |
import javax.swing.event.ChangeEvent; |
58 |
import javax.swing.event.ChangeListener; |
import javax.swing.event.ChangeListener; |
59 |
|
import javax.swing.event.MouseInputListener; |
60 |
import javax.swing.plaf.ComponentUI; |
import javax.swing.plaf.ComponentUI; |
61 |
import javax.swing.plaf.MenuBarUI; |
import javax.swing.plaf.MenuBarUI; |
62 |
|
|
69 |
|
|
70 |
/*ContainerListener that listens to the ContainerEvents fired from menu bar*/ |
/*ContainerListener that listens to the ContainerEvents fired from menu bar*/ |
71 |
protected ContainerListener containerListener; |
protected ContainerListener containerListener; |
72 |
|
|
73 |
/*Property change listeners that listener to PropertyChangeEvent from menu bar*/ |
/*Property change listeners that listener to PropertyChangeEvent from menu bar*/ |
74 |
protected PropertyChangeListener propertyChangeListener; |
protected PropertyChangeListener propertyChangeListener; |
75 |
|
|
76 |
/* menu bar for which this UI delegate is for*/ |
/* menu bar for which this UI delegate is for*/ |
77 |
protected JMenuBar menuBar; |
protected JMenuBar menuBar; |
78 |
|
|
79 |
|
/* MouseListener that listens to the mouseEvents fired from menu bar*/ |
80 |
|
private MouseInputListener mouseListener; |
81 |
|
|
82 |
/** |
/** |
83 |
* Creates a new BasicMenuBarUI object. |
* Creates a new BasicMenuBarUI object. |
87 |
changeListener = createChangeListener(); |
changeListener = createChangeListener(); |
88 |
containerListener = createContainerListener(); |
containerListener = createContainerListener(); |
89 |
propertyChangeListener = new PropertyChangeHandler(); |
propertyChangeListener = new PropertyChangeHandler(); |
90 |
|
mouseListener = new MouseInputHandler(); |
91 |
} |
} |
92 |
|
|
93 |
/** |
/** |
193 |
{ |
{ |
194 |
menuBar.addContainerListener(containerListener); |
menuBar.addContainerListener(containerListener); |
195 |
menuBar.addPropertyChangeListener(propertyChangeListener); |
menuBar.addPropertyChangeListener(propertyChangeListener); |
196 |
|
menuBar.addMouseListener(mouseListener); |
197 |
} |
} |
198 |
|
|
199 |
/** |
/** |
240 |
{ |
{ |
241 |
menuBar.removeContainerListener(containerListener); |
menuBar.removeContainerListener(containerListener); |
242 |
menuBar.removePropertyChangeListener(propertyChangeListener); |
menuBar.removePropertyChangeListener(propertyChangeListener); |
243 |
|
menuBar.removeMouseListener(mouseListener); |
244 |
} |
} |
245 |
|
|
246 |
/** |
/** |
313 |
menuBar.repaint(); |
menuBar.repaint(); |
314 |
} |
} |
315 |
} |
} |
316 |
|
|
317 |
|
private class MouseInputHandler implements MouseInputListener |
318 |
|
{ |
319 |
|
/** |
320 |
|
* Handles mouse clicked event |
321 |
|
* |
322 |
|
* @param e Mouse event |
323 |
|
*/ |
324 |
|
public void mouseClicked(MouseEvent e) |
325 |
|
{ |
326 |
|
MenuElement[] me = menuBar.getSubElements(); |
327 |
|
|
328 |
|
for (int i = 0; i < me.length; i++) |
329 |
|
menuBar.getMenu(i).setSelected(false); |
330 |
|
} |
331 |
|
|
332 |
|
/** |
333 |
|
* Handles mouse pressed event |
334 |
|
* |
335 |
|
* @param e Mouse event |
336 |
|
*/ |
337 |
|
public void mousePressed(MouseEvent e) |
338 |
|
{ |
339 |
|
} |
340 |
|
|
341 |
|
/** |
342 |
|
* Handles mouse released event |
343 |
|
* |
344 |
|
* @param e Mouse event |
345 |
|
*/ |
346 |
|
public void mouseReleased(MouseEvent e) |
347 |
|
{ |
348 |
|
} |
349 |
|
|
350 |
|
/** |
351 |
|
* Handles mouse exited event |
352 |
|
* |
353 |
|
* @param e Mouse event |
354 |
|
*/ |
355 |
|
public void mouseExited(MouseEvent e) |
356 |
|
{ |
357 |
|
} |
358 |
|
|
359 |
|
/** |
360 |
|
* Handles mouse dragged event |
361 |
|
* |
362 |
|
* @param e Mouse event |
363 |
|
*/ |
364 |
|
public void mouseDragged(MouseEvent e) |
365 |
|
{ |
366 |
|
} |
367 |
|
|
368 |
|
/** |
369 |
|
* Handles mouse moved event |
370 |
|
* |
371 |
|
* @param e Mouse event |
372 |
|
*/ |
373 |
|
public void mouseMoved(MouseEvent e) |
374 |
|
{ |
375 |
|
} |
376 |
|
|
377 |
|
/** |
378 |
|
* Handles mouse entered event |
379 |
|
* |
380 |
|
* @param e Mouse event |
381 |
|
*/ |
382 |
|
public void mouseEntered(MouseEvent e) |
383 |
|
{ |
384 |
|
} |
385 |
|
} |
386 |
} |
} |