001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.mappaint; 003 004import java.awt.event.ActionEvent; 005import java.util.Arrays; 006 007import javax.swing.AbstractAction; 008import javax.swing.Action; 009import javax.swing.JCheckBoxMenuItem; 010import javax.swing.JMenu; 011 012import org.openstreetmap.josm.gui.MainApplication; 013import org.openstreetmap.josm.gui.mappaint.loader.MapPaintStyleLoader; 014 015/** 016 * GUI elements for a {@link StyleSetting.BooleanStyleSetting} class. 017 * @since 12831 018 */ 019public class BooleanStyleSettingGui implements StyleSettingGui { 020 021 final StyleSetting.BooleanStyleSetting setting; 022 023 public BooleanStyleSettingGui(StyleSetting.BooleanStyleSetting setting) { 024 this.setting = setting; 025 } 026 027 @Override 028 public void addMenuEntry(JMenu menu) { 029 final JCheckBoxMenuItem item = new JCheckBoxMenuItem(); 030 Action a = new AbstractAction(setting.label) { 031 @Override 032 public void actionPerformed(ActionEvent e) { 033 setting.setValue(item.isSelected()); 034 MainApplication.worker.submit(new MapPaintStyleLoader(Arrays.asList(setting.parentStyle))); 035 } 036 }; 037 item.setAction(a); 038 item.setSelected((boolean) setting.getValue()); 039 menu.add(item); 040 } 041}