package com.revolsys.swing.menu; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.Action; import javax.swing.JCheckBoxMenuItem; import com.revolsys.swing.action.enablecheck.EnableCheck; import com.revolsys.util.Property; public class CheckBoxMenuItem extends JCheckBoxMenuItem implements PropertyChangeListener { private static final long serialVersionUID = 1L; private EnableCheck selectedCheck; public CheckBoxMenuItem(final Action action) { super(action); } @Override public void propertyChange(final PropertyChangeEvent evt) { final boolean enabled = this.selectedCheck.isEnabled(); setSelected(enabled); } public void setSelectedCheck(final EnableCheck selectedCheck) { Property.removeListener(this.selectedCheck, "enabled", this); this.selectedCheck = selectedCheck; Property.addListener(selectedCheck, "enabled", this); setSelected(selectedCheck == null || this.selectedCheck.isEnabled()); } }