/* * Copyright (c) 2010-2016, Sikuli.org, sikulix.com * Released under the MIT License. * */ /** * */ package org.sikuli.guide; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Stroke; import org.sikuli.basics.Debug; import org.sikuli.script.Region; public class SxRectangle extends Visual { public SxRectangle(Region region) { super(); init(region); } public SxRectangle(Visual comp) { super(); init(comp.getRegion()); } public SxRectangle() { super(); init(null); } private void init(Region region) { if (region != null) { targetRegion = region; } else { Debug.log(2, "SikuliGuideRectangle: targetRegion is given as null"); targetRegion = Region.create(0, 0, 2*stroke, 2*stroke); } setColor(Color.RED); } @Override public void updateComponent() { setActualBounds(targetRegion.getRect()); setForeground(colorFront); super.setLocationRelative(Layout.OVER); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; Stroke pen = new BasicStroke(stroke); g2d.setStroke(pen); g2d.drawRect(0, 0, getActualWidth() - 1, getActualHeight() - 1); } }