package org.freeplane.core.ui.components; import java.awt.event.ActionEvent; import javax.swing.JToggleButton; import org.freeplane.core.ui.IFreeplaneAction; class ActionToggleButtonModel extends JToggleButton.ToggleButtonModel { /** * */ private static final long serialVersionUID = 1L; private boolean ignoreSetSelected = false; ActionToggleButtonModel(final IFreeplaneAction action) { } @Override public void setSelected(boolean b) { if(ignoreSetSelected) return; super.setSelected(b); } @Override public void setPressed(boolean b) { ignoreSetSelected = true; try { super.setPressed(b); } finally { ignoreSetSelected = false; } } @Override protected void fireActionPerformed(ActionEvent e) { boolean setSelectedWasIgnored = ignoreSetSelected; ignoreSetSelected = false; try { super.fireActionPerformed(e); } finally { ignoreSetSelected = setSelectedWasIgnored; } } }