source: josm/trunk/src/org/openstreetmap/josm/gui/WindowMenu.java@ 15835

Last change on this file since 15835 was 15655, checked in by Don-vip, 4 years ago

see #18514 - cleanup menu groups handling

  • Property svn:eol-style set to native
File size: 1.4 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui;
3
4import static org.openstreetmap.josm.tools.I18n.trc;
5
6import java.awt.event.ContainerEvent;
7import java.awt.event.ContainerListener;
8import java.util.Arrays;
9
10import javax.swing.JMenu;
11
12import org.openstreetmap.josm.actions.ExpertToggleAction;
13import org.openstreetmap.josm.actions.ExpertToggleAction.ExpertModeChangeListener;
14
15/**
16 * Window menu, holding entries for changeset manager, toggle dialogs.
17 * @since 15649
18 */
19public class WindowMenu extends JMenu implements ContainerListener, ExpertModeChangeListener {
20
21 /**
22 * Constructs a new {@code WindowMenu}
23 */
24 public WindowMenu() {
25 /* I18N: mnemonic: W */
26 super(trc("menu", "Windows"));
27 ExpertToggleAction.addExpertModeChangeListener(this);
28 getPopupMenu().addContainerListener(this);
29 setEnabledState();
30 }
31
32 @Override
33 public void expertChanged(boolean isExpert) {
34 setEnabledState();
35 }
36
37 @Override
38 public void componentAdded(ContainerEvent e) {
39 setEnabledState();
40 }
41
42 @Override
43 public void componentRemoved(ContainerEvent e) {
44 setEnabledState();
45 }
46
47 protected void setEnabledState() {
48 setEnabled(ExpertToggleAction.isExpert()
49 || Arrays.stream(getMenuComponents()).anyMatch(c -> !ExpertToggleAction.hasVisibilitySwitcher(c)));
50 }
51}
Note: See TracBrowser for help on using the repository browser.