| 46 | | // Add the "toggle all settings" action |
| 47 | | if (settings.size() >= 2) { |
| 48 | | JMenuItem item = new JMenuItem(new AbstractAction(tr("Toggle all settings")) { |
| 49 | | @Override |
| 50 | | public void actionPerformed(ActionEvent e) { |
| 51 | | List<BooleanStyleSettingCheckBoxMenuItem> items = Arrays.stream(submenu.getMenuComponents()) |
| 52 | | .filter(c -> c instanceof BooleanStyleSettingCheckBoxMenuItem) |
| 53 | | .map(c -> (BooleanStyleSettingCheckBoxMenuItem) c) |
| 54 | | .collect(Collectors.toList()); |
| 55 | | final boolean select = items.stream().anyMatch(cbi -> !cbi.isSelected()); |
| 56 | | items.stream().filter(cbi -> select != cbi.isSelected()).forEach(cbi -> cbi.doClickWithoutRepaint(0)); |
| 57 | | MainApplication.worker.submit(new MapPaintStyleLoader(Arrays.asList(group.parentStyle))); |
| 58 | | } |
| 59 | | }); |
| 60 | | item.setUI(new StayOpenCheckBoxMenuItemUI()); |
| 61 | | submenu.add(item); |
| 62 | | submenu.addSeparator(); |
| | 46 | // Disable submenu if settings is empty |
| | 47 | if (settings.isEmpty()) { |
| | 48 | submenu.setEnabled(false); |
| | 49 | } else { |
| | 50 | // Add the "toggle all settings" action |
| | 51 | if (settings.size() >= 2) { |
| | 52 | JMenuItem item = new JMenuItem(new AbstractAction(tr("Toggle all settings")) { |
| | 53 | @Override |
| | 54 | public void actionPerformed(ActionEvent e) { |
| | 55 | List<BooleanStyleSettingCheckBoxMenuItem> items = Arrays.stream(submenu.getMenuComponents()) |
| | 56 | .filter(c -> c instanceof BooleanStyleSettingCheckBoxMenuItem) |
| | 57 | .map(c -> (BooleanStyleSettingCheckBoxMenuItem) c) |
| | 58 | .collect(Collectors.toList()); |
| | 59 | final boolean select = items.stream().anyMatch(cbi -> !cbi.isSelected()); |
| | 60 | items.stream().filter(cbi -> select != cbi.isSelected()).forEach(cbi -> cbi.doClickWithoutRepaint(0)); |
| | 61 | MainApplication.worker.submit(new MapPaintStyleLoader(Arrays.asList(group.parentStyle))); |
| | 62 | } |
| | 63 | }); |
| | 64 | item.setUI(new StayOpenCheckBoxMenuItemUI()); |
| | 65 | submenu.add(item); |
| | 66 | submenu.addSeparator(); |
| | 67 | } |