Пример #1
0
 def __init__(self, *args):
    if len(args)==4:
       JRegion.__init__(self, args[0], args[1], args[2], args[3])
    elif len(args)==1:
       JRegion.__init__(self, args[0])
    else:
       raise Exception("Wrong number of parameters of Region's contructor")
Пример #2
0
 def wait(self, target, timeout=None):
     if isinstance(target, int) or isinstance(target, long):
         target = float(target)
     if timeout == None:
         return JRegion.wait(self, target)
     else:
         return JRegion.wait(self, target, timeout)
 def __init__(self, *args):
     if len(args) == 4:
         JRegion.__init__(self, args[0], args[1], args[2], args[3])
     elif len(args) == 1:
         JRegion.__init__(self, args[0])
     else:
         raise Exception(
             "Wrong number of parameters of Region's contructor")
Пример #4
0
 def type(self, *args):
    if len(args) == 1:
       return JRegion.type(self, None, args[0], 0)
    if len(args) == 2:
       if __builtin__.type(args[1]) is types.IntType:
          return JRegion.type(self, None, args[0], args[1])
       else:
          return JRegion.type(self, args[0], args[1], 0)
    return JRegion.type(self, args[0], args[1], args[2])
Пример #5
0
 def wait(self, target, timeout=None):
    if isinstance(target, int) or isinstance(target, long) or isinstance(target, float):
       time.sleep(target)
       return
    if timeout == None:
       ret = JRegion.wait(self, target)
    else:
       ret = JRegion.wait(self, target, timeout)
    return ret
Пример #6
0
 def wait(self, target, timeout=None):
    ttype = __builtin__.type(target)
    if ttype is types.IntType or ttype is types.FloatType:
       time.sleep(target)
       return
    if timeout == None:
       ret = JRegion.wait(self, target)
    else:
       ret = JRegion.wait(self, target, timeout)
    return ret
 def wait(self, target, timeout=None):
     ttype = __builtin__.type(target)
     if ttype is types.IntType or ttype is types.FloatType:
         time.sleep(target)
         return
     if timeout == None:
         ret = JRegion.wait(self, target)
     else:
         ret = JRegion.wait(self, target, timeout)
     return ret
Пример #8
0
 def wait(self, target, timeout=None):
     if isinstance(target, int) or isinstance(target, long) or isinstance(
             target, float):
         time.sleep(target)
         return
     if timeout == None:
         ret = JRegion.wait(self, target)
     else:
         ret = JRegion.wait(self, target, timeout)
     return ret
Пример #9
0
 def __init__(self, *args):
    if DEBUG: print "**IN*** Jython INIT Region"
    if len(args)==4:
       JRegion.__init__(self, args[0], args[1], args[2], args[3])
    elif len(args)==1:
       JRegion.__init__(self, args[0])
    else:
       raise Exception("Wrong number of parameters of Region's contructor")
    self.setScriptingType("JythonRegion")
    self._global_funcs = None
    if DEBUG: print "**OUT** Jython INIT Region"
Пример #10
0
 def __init__(self, *args):
     if DEBUG: print "**IN*** Jython INIT Region"
     if len(args) == 4:
         JRegion.__init__(self, args[0], args[1], args[2], args[3])
     elif len(args) == 1:
         JRegion.__init__(self, args[0])
     else:
         raise Exception(
             "Wrong number of parameters of Region's contructor")
     self.setScriptingType("JythonRegion")
     self._global_funcs = None
     if DEBUG: print "**OUT** Jython INIT Region"
Пример #11
0
 def onChange(self, arg1, arg2=None):
    t_arg1 = __builtin__.type(arg1)
    if t_arg1 is types.IntType:
       min_size = arg1
       handler = arg2
    else:
       min_size = None
       handler = arg1
    class AnonyObserver(SikuliEventAdapter):
       def targetChanged(self, event):
          handler(event)
    if min_size != None:
       return JRegion.onChange(self, min_size, AnonyObserver())
    return JRegion.onChange(self, AnonyObserver())
	def click(self, target, modifiers=0):
		try:
			return SikuliRegion.click(self, target, modifiers)
		except FindFailed, e:			
			self.log.html_img("Find Filed", "images/" + getFilename(target))
			self.log.screenshot(msg="Region", region=(self.getX(), self.getY(), self.getW(), self.getH()))
			raise e
    def onChange(self, arg1, arg2=None):
        t_arg1 = __builtin__.type(arg1)
        if t_arg1 is types.IntType:
            min_size = arg1
            handler = arg2
        else:
            min_size = None
            handler = arg1

        class AnonyObserver(SikuliEventAdapter):
            def targetChanged(self, event):
                handler(event)

        if min_size != None:
            return JRegion.onChange(self, min_size, AnonyObserver())
        return JRegion.onChange(self, AnonyObserver())
 def dragDrop(self,src, dest, modifiers=0):
     try:
         return SikuliRegion.dragDrop(self,src, dest, modifiers)
     except FindFailed, e:            
         self.log.html_img("Find Filed", getFilename(src)+" or " + getFilename(src))
         self.log.screenshot(msg="Region", region=(self.getX(), self.getY(), self.getW(), self.getH()))
         raise e        
Пример #15
0
def _setLocationRelativeToRegion(comp, r_, side='left', offset=(0,0), expand=(0,0,0,0), \
                                 horizontalalignment = 'center', \
                                 verticalalignment = 'center'):
    r = Region(r_)
    # Offset
    (dx, dy) = offset
    r.x += dx
    r.y += dy
    # Side
    if (side == 'right'):
        comp.setLocationRelativeToRegion(r, Layout.RIGHT)
    elif (side == 'top'):
        comp.setLocationRelativeToRegion(r, Layout.TOP)
    elif (side == 'bottom'):
        comp.setLocationRelativeToRegion(r, Layout.BOTTOM)
    elif (side == 'left'):
        comp.setLocationRelativeToRegion(r, Layout.LEFT)
    elif (side == 'inside'):
        comp.setLocationRelativeToRegion(r, Layout.INSIDE)
    # Alignment
    if (horizontalalignment == 'left'):
        comp.setHorizontalAlignmentWithRegion(r, 0.0)
    elif (horizontalalignment == 'right'):
        comp.setHorizontalAlignmentWithRegion(r, 1.0)
    if (verticalalignment == 'top'):
        comp.setVerticalAlignmentWithRegion(r, 0.0)
    elif (verticalalignment == 'bottom'):
        comp.setVerticalAlignmentWithRegion(r, 1.0)
 def doubleclick(self,target,modifiers=0):
     addFoundImage(getFilename(target)) 
     try:
         return SikuliRegion.doubleClick(self, target, modifiers)
     except FindFailed, e:            
         self.log.html_img("Find Filed", getFilename(target)) #"images/" + getFilename(target))
         self.log.screenshot(msg="Region", region=(self.getX(), self.getY(), self.getW(), self.getH()))
         raise e  
 def mouseMove(self,target): 
     addFoundImage(getFilename(target))  
     try:
         return SikuliRegion.mouseMove(self,target)
     except FindFailed, e:            
         self.log.html_img("Find Filed", getFilename(target)) #"images/" + getFilename(target))
         self.log.screenshot(msg="Region", region=(self.getX(), self.getY(), self.getW(), self.getH()))
         raise e   
Пример #18
0
    def onChange(self, arg1, arg2=None):

        if isinstance(arg1, int):
            min_size = arg1
            handler = arg2
        else:
            if (arg2 != None):
                raise Exception("onChange: Invalid parameters set")
            min_size = None
            handler = arg1
        
        class AnonyObserver(SikuliEventAdapter):
            def targetChanged(self, event):
                handler(event)
                
        if min_size != None:
            return JRegion.onChange(self, min_size, AnonyObserver())
        return JRegion.onChange(self, AnonyObserver())
Пример #19
0
 def paste(self, *args):
     if len(args) == 1:
         target = None
         s = args[0]
     elif len(args) == 2:
         target = args[0]
         s = args[1]
     if isinstance(s, types.StringType):
         s = java.lang.String(s, "utf-8")
     return JRegion.paste(self, target, s)
Пример #20
0
 def paste(self, *args):
    if len(args) == 1:
       target = None
       s = args[0]
    elif len(args) == 2:
       target = args[0]
       s = args[1]
    if isinstance(s, types.StringType):
       s = java.lang.String(s, "utf-8")
    return JRegion.paste(self, target, s)
Пример #21
0
def hotspot(target, message, side='right'):
    # TODO allow hotspot's positions to be automatically updated
    r = _getRegionFromTarget(target)
    txtcomp = SikuliGuideCallout(message)
    r1 = Region(r)
    r1.x -= 10
    r1.w += 20
    _setLocationRelativeToRegion(txtcomp, r1, side)
    txtcomp.setShadow(10, 2)
    comp = SikuliGuideHotspot(r, txtcomp, _g)
    _g.addToFront(comp)
    return comp
def _adjustRegion(r_, offset=(0, 0), expand=(0, 0, 0, 0)):

    r = Region(r_)

    # Offset
    (dx, dy) = offset
    r.x += dx
    r.y += dy

    # Expansion
    if isinstance(expand, tuple):
        (dt, dl, db, dr) = expand
    else:
        (dt, dl, db, dr) = (expand, expand, expand, expand)

    r.x -= dl
    r.y -= dt
    r.w = r.w + dl + dr
    r.h = r.h + dt + db

    return r
Пример #23
0
 def testToJythonRegion(self):
    jr = JRegion(0, 0, 100, 100)
    pyr = JRegion.toJythonRegion(jr)
    self.assertEqual(jr.x, pyr.x)
    self.assertEqual(jr.y, pyr.y)
    self.assertEqual(jr.w, pyr.w)
    self.assertEqual(jr.h, pyr.h)
    try:
       with jr:
          self.fail("should not happen: __exit__ is not defined in Java.")
    except AttributeError,e:
       pass
Пример #24
0
def _adjustRegion(r_, offset = (0,0), expand=(0,0,0,0)):
    
    r = Region(r_)
    
    # Offset
    (dx,dy) = offset
    r.x += dx
    r.y += dy
    
    # Expansion
    if isinstance(expand, tuple):
        (dt,dl,db,dr) = expand
    else:
        (dt,dl,db,dr) = (expand,expand,expand,expand)

    r.x -= dl
    r.y -= dt
    r.w = r.w + dl + dr
    r.h = r.h + dt + db
    
    return r
Пример #25
0
 def testToJythonRegion(self):
     jr = JRegion(0, 0, 100, 100)
     pyr = JRegion.toJythonRegion(jr)
     self.assertEqual(jr.x, pyr.x)
     self.assertEqual(jr.y, pyr.y)
     self.assertEqual(jr.w, pyr.w)
     self.assertEqual(jr.h, pyr.h)
     try:
         with jr:
             self.fail(
                 "should not happen: __exit__ is not defined in Java.")
     except AttributeError, e:
         pass
Пример #26
0
 def paste(self, *args):
    if len(args) == 1:
       target = None
       s = args[0]
    elif len(args) == 2:
       target = args[0]
       s = args[1]
    t_str = __builtin__.type(s) 
    if t_str is types.UnicodeType:
       pass # do nothing
    elif t_str is types.StringType:
       s = java.lang.String(s, "utf-8")
    return JRegion.paste(self, target, s)
 def paste(self, *args):
     if len(args) == 1:
         target = None
         s = args[0]
     elif len(args) == 2:
         target = args[0]
         s = args[1]
     t_str = __builtin__.type(s)
     if t_str is types.UnicodeType:
         pass  # do nothing
     elif t_str is types.StringType:
         s = java.lang.String(s, "utf-8")
     return JRegion.paste(self, target, s)
Пример #28
0
 def observe(self, time=FOREVER, background=False):
     if not background:
         return JRegion.observe(self, time)
     else:
         if(self.getEvtMgr()) == None:
             Debug.error("Jython Region: observe: nothing to observe")
             return None
         else:
             r = (JRegion(self))
             e = self.getEvtMgr()
             e.setRegion(r)
             r.setEvtMgr(e)
             r.setObserveScanRate(self.getObserveScanRate())
             return r.observeInBackground(time)
def _show_steps(steps, timeout=None):

    # only keep callables
    steps = filter(lambda x: callable(x), steps)
    print steps
    n = len(steps)
    i = 0

    while True:
        step = steps[i]
        step()

        msg = "Step %d of %d" % (i + 1, n)
        a = rectangle(Region(100, 100, 0, 0))
        text((10, 50), msg, fontsize=10)

        if n == 1:  # only one step
            addCloseButton(a)
        elif i == 0:  # first step
            addNextButton(a)
            addCloseButton(a)
        elif i < n - 1:  # between
            addPreviousButton(a)
            addNextButton(a)
            addCloseButton(a)
        elif i == n - 1:  # final step
            addPreviousButton(a)
            addCloseButton(a)

        ret = _g.showNow()

        if (ret == "Previous" and i > 0):
            i = i - 1
        elif (ret == "Next" and i < n - 1):
            i = i + 1
        elif (ret == None and i < n - 1):  # timeout
            i = i + 1
        elif (ret == "Close"):
            return
        else:
            # some other transitions happened
            if (i < n - 1):
                i = i + 1
            else:
                return
Пример #30
0
 def setThrowException(self, flag):
    return JRegion.setThrowException(self, flag)
Пример #31
0
 def keyUp(self, keys=None):
    return JRegion.keyUp(self, keys)
Пример #32
0
 def keyDown(self, keys):
    return JRegion.keyDown(self, keys)
Пример #33
0
 def observe(self, time=FOREVER, background=False):
    if background:
       return self.observeInBackground(time)
    else:
       return JRegion.observe(self, time)
Пример #34
0
 def onVanish(self, target, handler):
    class AnonyObserver(SikuliEventAdapter):
       def targetVanished(self, event):
          handler(event)
    return JRegion.onVanish(self, target, AnonyObserver())
Пример #35
0
def _getRegionFromTarget(target):
    if isinstance(target, SikuliGuideComponent):
        return Region(target.getBounds())
    else:
        return s.getRegionFromPSRM(target)
def _addComponentHelper(comp,
                        target,
                        side='best',
                        margin=0,
                        offset=(0, 0),
                        horizontalalignment='center',
                        verticalalignment='center',
                        shadow='default'):

    # Margin
    if margin:
        if isinstance(margin, tuple):
            (dt, dl, db, dr) = margin
        else:
            (dt, dl, db, dr) = (margin, margin, margin, margin)
        comp.setMargin(dt, dl, db, dr)

    # Offset
    if offset:
        (x, y) = offset
        comp.setOffset(x, y)

    # Side
    if (side == 'right'):
        sideConstant = Layout.RIGHT
    elif (side == 'top'):
        sideConstant = Layout.TOP
    elif (side == 'bottom'):
        sideConstant = Layout.BOTTOM
    elif (side == 'left'):
        sideConstant = Layout.LEFT
    elif (side == 'inside'):
        sideConstant = Layout.INSIDE
    elif (side == 'over'):
        sideConstant = Layout.OVER

    # Alignment


#    if (horizontalalignment == 'left'):
#        comp.setHorizontalAlignmentWithRegion(r,0.0)
#    elif (horizontalalignment == 'right'):
#
#   if (verticalalignment == 'top'):
#       comp.setVerticalAlignmentWithRegion(r,0.0)
#   elif (verticalalignment == 'bottom'):
#        comp.setVerticalAlignmentWithRegion(r,1.0)

    if isinstance(target, Region):
        # absolute location wrt a Region
        comp.setLocationRelativeToRegion(target, sideConstant)
    elif isinstance(target, tuple):
        # absolute location wrt a point (specified as (x,y))
        comp.setLocationRelativeToRegion(Region(target[0], target[1], 1, 1),
                                         Layout.RIGHT)
    else:

        if isinstance(target, str):
            # relative location to a string (image filename)
            targetComponent = anchor(Pattern(target))
            targetComponent.setOpacity(0)
        elif isinstance(target, Pattern):
            # relative location to a pattern
            targetComponent = anchor(target)
            targetComponent.setOpacity(0)
        elif isinstance(target, SikuliGuideComponent):
            targetComponent = target

        comp.setLocationRelativeToComponent(targetComponent, sideConstant)

    # set shadow, different sizes for different types of components
    if shadow == 'default':

        if (isinstance(comp, SikuliGuideCircle)
                or isinstance(comp, SikuliGuideRectangle)
                or isinstance(comp, SikuliGuideBracket)):
            comp.setShadow(5, 2)
        elif not (isinstance(comp, SikuliGuideSpotlight)):
            comp.setShadow(10, 2)

    # add the component to guide
    _g.addToFront(comp)

    return comp
Пример #37
0
 def text(self):
    return JRegion.text(self).encode("utf8")
 def observe(self, time=FOREVER, background=False):
     if background:
         return self.observeInBackground(time)
     else:
         return JRegion.observe(self, time)
    def onVanish(self, target, handler):
        class AnonyObserver(SikuliEventAdapter):
            def targetVanished(self, event):
                handler(event)

        return JRegion.onVanish(self, target, AnonyObserver())
    def onAppear(self, target, handler):
        class AnonyObserver(SikuliEventAdapter):
            def targetAppeared(self, event):
                handler(event)

        return JRegion.onAppear(self, target, AnonyObserver())
Пример #41
0
 def setAutoWaitTimeout(self, sec):
    return JRegion.setAutoWaitTimeout(self, sec)
Пример #42
0
 def findAll(self, target):
    ret = JRegion.findAll(self, target)
    return ret
Пример #43
0
 def observe(self, waitTime=FOREVER, background=False):
     return JRegion.observeJ(waitTime, background)
Пример #44
0
 def waitVanish(self, target, timeout=None):
    if timeout == None:
       ret = JRegion.waitVanish(self, target)
    else:
       ret = JRegion.waitVanish(self, target, timeout)
    return ret
Пример #45
0
 def mouseDown(self, buttons):
    return JRegion.mouseDown(self, buttons)
Пример #46
0
def _getRegionFromTarget(target):
    if isinstance(target, Visual):
        return Region(target.getBounds())
    else:
        return Screen().getRegionFromTarget(target)
Пример #47
0
 def mouseUp(self, buttons=0):
    return JRegion.mouseUp(self, buttons)
Пример #48
0
 def mouseMove(self, target):
    return JRegion.hover(self, target)
Пример #49
0
 def getRegion(self):
     
     return Region(self.x, self.y, 1, 1)
Пример #50
0
 def text(self):
     return JRegion.text(self).encode("utf8")
Пример #51
0
def _addComponentHelper(comp,
                        target,
                        side='best',
                        margin=0,
                        offset=(0, 0),
                        horizontalalignment='center',
                        verticalalignment='center',
                        font=None,
                        fontsize=0,
                        width=0,
                        shadow='default',
                        front=None,
                        back=None,
                        frame=None,
                        text=None):

    # set the component's colors
    comp.setColors(front, back, frame, text)

    # set the component's font
    comp.setFont(font, fontsize)

    # set the components width
    if width > 0: comp.setMaxWidth(width)

    # Margin
    if margin:
        if isinstance(margin, tuple):
            (dt, dl, db, dr) = margin
        else:
            (dt, dl, db, dr) = (margin, margin, margin, margin)
        comp.setMargin(dt, dl, db, dr)
    # Offset
    if offset:
        (x, y) = offset
        comp.setOffset(x, y)
    # Side
    if (side == 'right'):
        sideConstant = Layout.RIGHT
    elif (side == 'top'):
        sideConstant = Layout.TOP
    elif (side == 'bottom'):
        sideConstant = Layout.BOTTOM
    elif (side == 'left'):
        sideConstant = Layout.LEFT
    elif (side == 'inside'):
        sideConstant = Layout.INSIDE
    elif (side == 'over'):
        sideConstant = Layout.OVER
    # Alignment
#    if (horizontalalignment == 'left'):
#        comp.setHorizontalAlignmentWithRegion(r,0.0)
#    elif (horizontalalignment == 'right'):
#   if (verticalalignment == 'top'):
#       comp.setVerticalAlignmentWithRegion(r,0.0)
#   elif (verticalalignment == 'bottom'):
#        comp.setVerticalAlignmentWithRegion(r,1.0)

    if isinstance(target, Region):
        # absolute location wrt a Region
        comp.setLocationRelativeToRegion(target, sideConstant)
    elif isinstance(target, tuple):
        # absolute location wrt a point (specified as (x,y))
        comp.setLocationRelativeToRegion(Region(target[0], target[1], 1, 1),
                                         Layout.RIGHT)
    else:
        targetComponent = None
        if isinstance(target, str):
            # relative location to a string (image filename)
            targetComponent = anchor(Pattern(target))
            targetComponent.setOpacity(0)
        elif isinstance(target, Pattern):
            # relative location to a pattern
            targetComponent = anchor(target)
            targetComponent.setOpacity(0)
        elif isinstance(target, SikuliGuideComponent):
            targetComponent = target
        if targetComponent:
            comp.setLocationRelativeToComponent(targetComponent, sideConstant)
        else:
            Debug.error("GuideComponentSetup: invalid target: ", target)
            return None

    # set shadow, different sizes for different types of components


#TODO shadow handling
    if shadow == 'default':
        if (isinstance(comp, SikuliGuideCircle) or \
                isinstance(comp, SikuliGuideRectangle) or \
                isinstance(comp, SikuliGuideBracket)):
            comp.setShadow(5, 2)
        elif not (isinstance(comp, SikuliGuideSpotlight)):
            comp.setShadow(10, 2)

    # add the component to guide
    comp.updateComponent()
    _g.addToFront(comp)
    return comp
Пример #52
0
 def onAppear(self, target, handler):
    class AnonyObserver(SikuliEventAdapter):
       def targetAppeared(self, event):
          handler(event)
    return JRegion.onAppear(self, target, AnonyObserver())
Пример #53
0
 def getRegion(self):
     
     return Region(self.x1, self.y1, 1, 1).add(Location(self.x2, self.y2))