/* * Copyright 2010-2015 Institut Pasteur. * * This file is part of Icy. * * Icy is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Icy is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Icy. If not, see <http://www.gnu.org/licenses/>. */ package icy.gui.component.menu; import icy.action.IcyAbstractAction; import icy.resource.icon.IcyIcon; import java.awt.event.ActionListener; import org.pushingpixels.flamingo.api.common.JCommandButton.CommandButtonKind; import org.pushingpixels.flamingo.api.common.icon.ResizableIcon; import org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenuEntrySecondary; /** * @author Stephane */ public class IcyRibbonApplicationMenuEntrySecondary extends RibbonApplicationMenuEntrySecondary { private final IcyAbstractAction action; public IcyRibbonApplicationMenuEntrySecondary(ResizableIcon icon, String text, ActionListener mainActionListener, CommandButtonKind entryKind) { super(icon, text, mainActionListener, entryKind); action = null; } public IcyRibbonApplicationMenuEntrySecondary(IcyAbstractAction action) { super((action.getIcon() != null) ? new IcyIcon(action.getIcon()) : null, action.getName(), action, CommandButtonKind.ACTION_ONLY); this.action = action; // set tooltip setActionRichTooltip(action.getRichToolTip()); } @Override public boolean isEnabled() { return super.isEnabled() && ((action == null) || action.isEnabled()); } @Override public void setEnabled(boolean b) { final boolean oldValue = isEnabled(); super.setEnabled(b); if ((oldValue != b) && (action != null)) action.setEnabled(b); } }