/******************************************************************************* * 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.core.ui.util; import java.awt.Graphics; import javax.swing.AbstractButton; import javax.swing.JComponent; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.plaf.basic.BasicToggleButtonUI; public class RolloverButtonUI extends BasicToggleButtonUI { public RolloverButtonUI() { super(); } @Override public void paint(Graphics g, JComponent comp) { AbstractButton btn = (AbstractButton) comp; boolean rollover = btn.getModel().isRollover(); boolean selected = btn.getModel().isSelected(); boolean armed = btn.getModel().isArmed(); btn.setBorderPainted(selected || rollover); if (rollover || selected) { if (armed) { g.translate(1, 1); } else { if (!selected) { g.setColor(UIManager.getColor("controlHighlight")); //$NON-NLS-1$ g.fillRect(1, 1, btn.getWidth() - 2, btn.getHeight() - 2); } } } Border b = comp.getBorder(); if (b instanceof ToolBarButtonBorder) { ((ToolBarButtonBorder) b).setPressed(selected || armed); } super.paint(g, comp); } }