package studio.ui; import java.awt.Component; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.Vector; import javax.swing.Icon; public class ScaledIcon implements Icon { private Vector icons = new Vector(); private double factor; public void add(Icon icon) { icons.add(icon); } public ScaledIcon(Icon icon,int targetHeight) { this.factor = ((double) targetHeight) / (double) icon.getIconHeight(); icons.add(icon); } public int getIconWidth() { int w = 0; for (int i = 0;i < icons.size();i++) w += ((Icon) icons.elementAt(i)).getIconWidth(); w *= factor; return (int) (w + 5); } public int getIconHeight() { Icon icon = (Icon) icons.elementAt(0); return (int) (icon.getIconHeight() * factor); } public void paintIcon(Component c,Graphics g,int x,int y) { Graphics2D g2d = (Graphics2D) g.create(); g2d.translate(x,y); g2d.scale(factor,factor); int xoff = 0; for (int i = 0;i < icons.size();i++) { Icon icon = ((Icon) icons.elementAt(i)); icon.paintIcon(c,g2d,xoff,0); xoff += icon.getIconWidth() + 5; } g2d.dispose(); } }