/******************************************************************************* * Copyright (c) 2016 Weasis Team and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nicolas Roduit - initial API and implementation *******************************************************************************/ package org.weasis.acquire.dockable.components; import java.util.Optional; import javax.swing.BorderFactory; import javax.swing.JButton; import org.weasis.acquire.dockable.components.actions.AcquireAction; import org.weasis.acquire.dockable.components.actions.AcquireAction.Cmd; import org.weasis.acquire.dockable.components.actions.AcquireActionPanel; public class AcquireActionButton extends JButton { private static final long serialVersionUID = -4757730607905567863L; private AcquireAction action; public AcquireActionButton(String title, Cmd cmd) { super(title); setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); setActionCommand(cmd.name()); } public AcquireActionButton(String title, AcquireAction action) { this(title, Cmd.INIT); setAcquireAction(action); } public AcquireActionPanel getCentralPanel() { return action.getCentralPanel(); } public AcquireAction getAcquireAction() { return this.action; } public void setAcquireAction(AcquireAction action) { Optional.ofNullable(this.action).ifPresent(a -> removeActionListener(a)); this.action = action; addActionListener(this.action); } }