1 package fr.ifremer.quadrige3.ui.swing.component; 2 3 /*- 4 * #%L 5 * Quadrige3 Core :: Quadrige3 UI Common 6 * $Id:$ 7 * $HeadURL:$ 8 * %% 9 * Copyright (C) 2017 Ifremer 10 * %% 11 * This program is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Affero General Public License as published by 13 * the Free Software Foundation, either version 3 of the License, or 14 * (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU Affero General Public License 22 * along with this program. If not, see <http://www.gnu.org/licenses/>. 23 * #L% 24 */ 25 26 27 import javax.swing.ImageIcon; 28 import java.awt.Component; 29 import java.awt.Graphics; 30 31 /** 32 * <p>OverlayIcon class.</p> 33 * 34 * @author Ludovic Pecquot <ludovic.pecquot@e-is.pro> 35 */ 36 public class OverlayIcon extends ImageIcon { 37 38 private ImageIcon overlay; 39 40 /** 41 * <p>Constructor for OverlayIcon.</p> 42 * 43 * @param icon a {@link javax.swing.ImageIcon} object. 44 */ 45 public OverlayIcon(ImageIcon icon) { 46 super(icon.getImage()); 47 } 48 49 /** 50 * <p>Setter for the field <code>overlay</code>.</p> 51 * 52 * @param overlay a {@link javax.swing.ImageIcon} object. 53 */ 54 public synchronized void setOverlay(ImageIcon overlay) { 55 this.overlay = overlay; 56 } 57 58 /** {@inheritDoc} */ 59 @Override 60 public synchronized void paintIcon(Component c, Graphics g, int x, int y) { 61 super.paintIcon(c, g, x, y); //To change body of generated methods, choose Tools | Templates. 62 63 if (overlay != null) { 64 65 // paint overlay at bottom right (by default) 66 int ox = x + getIconWidth() - overlay.getIconWidth(); 67 int oy = y + getIconHeight() - overlay.getIconHeight(); 68 69 g.drawImage(overlay.getImage(), ox, oy, c); 70 71 } 72 } 73 74 }