public void addTarget(final Pattern pattern) { final SikuliGuideAnchor a = new SikuliGuideAnchor(pattern); guide.addToFront(a); targets.add(a); SikuliGuideFlag f = new SikuliGuideFlag("Flag"); f.setLocationRelativeToComponent(a, Layout.LEFT); guide.addToFront(f); a.addListener( new AnchorListener() { @Override public void anchored() { Debug.info("[Magnet] pattern anchored"); anchoredCount += 1; if (anchoredCount == targets.size()) { allTargetAnchored(); } } @Override public void found(SikuliGuideAnchor source) { // TODO Auto-generated method stub } }); }
void attractTarget(SikuliGuideAnchor a, Point targetLocation) { try { Pattern pattern = a.getPattern(); SikuliGuideImage img = new SikuliGuideImage(pattern.getImage()); Clickable clickable = new Clickable(); clickable.setLocationRelativeToComponent(img, Layout.OVER); guide.addToFront(clickable); clickable.clickPoint = a.getCenter(); Link link = new Link(); link.image = img; link.anchor = a; links.add(link); img.setShadowDefault(); img.setActualLocation(a.getActualLocation()); Dimension currentSize = a.getActualSize(); Dimension targetSize = new Dimension(currentSize); targetSize.width *= 1.5; targetSize.height *= 1.5; img.addResizeAnimation(currentSize, targetSize); Point currentLocation = new Point(a.getActualLocation()); targetLocation.x -= targetSize.width / 2; targetLocation.y -= targetSize.height / 2; img.addMoveAnimation(currentLocation, targetLocation); guide.addToFront(img); img.startAnimation(); guide.repaint(); } catch (IOException e) { e.printStackTrace(); } }