@Override public void setLocationRelativeToRegion(Region region, Layout side) { setBoundsRelativeToComponent(source); Debug.info("[Shadow] UDPATED: " + this); super.setLocationRelativeToRegion(region, side); }
public BufferedImage createShadowImage() { BufferedImage image = new BufferedImage( source.getWidth() + shadowSize * 2, source.getHeight() + shadowSize * 2, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics(); g2.translate(shadowSize, shadowSize); source.paint(g2); shadowImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB); getBlurOp(shadowSize).filter(createShadowMask(image), shadowImage); Debug.info("[Shadow] shadowImage: " + shadowImage); Debug.info("[Shadow] bounds: " + getBounds()); return shadowImage; }
void setBoundsRelativeToComponent(SikuliGuideComponent comp) { if (sourceSize.equals(comp.getSize())) return; sourceSize = (Dimension) comp.getSize().clone(); source = comp; if (comp instanceof SikuliGuideCircle || comp instanceof SikuliGuideArrow || comp instanceof SikuliGuideRectangle || comp instanceof SikuliGuideBracket) { shadowSize = 5; } else if (source instanceof SikuliGuideFlag || source instanceof SikuliGuideText) { shadowSize = 10; } else { shadowSize = 10; } Rectangle r = comp.getBounds(); r.grow(shadowSize, shadowSize); setSize(r.getSize()); createShadowImage(); }
@Override public void setLocationRelativeToComponent(SikuliGuideComponent comp, int offsetx, int offsety) { this.source = comp; setBoundsRelativeToComponent(comp); super.setLocationRelativeToComponent(comp, offsetx, offsety); }
public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; g2d.drawImage(shadowImage, 0, 0, getWidth(), getHeight(), null, null); }