/* start module: pyjamas.ui.Tooltip */
$pyjs['loaded_modules']['pyjamas.ui.Tooltip'] = function (__mod_name__) {
	if($pyjs['loaded_modules']['pyjamas.ui.Tooltip']['__was_initialized__']) return $pyjs['loaded_modules']['pyjamas.ui.Tooltip'];
	if(typeof $pyjs['loaded_modules']['pyjamas.ui'] == 'undefined' || !$pyjs['loaded_modules']['pyjamas.ui']['__was_initialized__']) $p['___import___']('pyjamas.ui', null);
	var $m = $pyjs['loaded_modules']['pyjamas.ui.Tooltip'];
	$m['__repr__'] = function() { return '<module: pyjamas.ui.Tooltip>'; };
	$m['__was_initialized__'] = true;
	if ((__mod_name__ === null) || (typeof __mod_name__ == 'undefined')) __mod_name__ = 'pyjamas.ui.Tooltip';
	$m['__name__'] = __mod_name__;
	$m.__track_lines__ = new Array();
	$pyjs['loaded_modules']['pyjamas.ui']['Tooltip'] = $pyjs['loaded_modules']['pyjamas.ui.Tooltip'];
	$m.__track_lines__[1] = 'pyjamas.ui.Tooltip.py, line 1:\n    # Tooltip component for Pyjamas';
	$m.__track_lines__[5] = 'pyjamas.ui.Tooltip.py, line 5:\n    from pyjamas.ui.PopupPanel import PopupPanel';
	$m.__track_lines__[6] = 'pyjamas.ui.Tooltip.py, line 6:\n    from pyjamas import Factory';
	$m.__track_lines__[7] = 'pyjamas.ui.Tooltip.py, line 7:\n    from pyjamas.ui.HTML import HTML';
	$m.__track_lines__[8] = 'pyjamas.ui.Tooltip.py, line 8:\n    from pyjamas.ui.RootPanel import RootPanel';
	$m.__track_lines__[9] = 'pyjamas.ui.Tooltip.py, line 9:\n    from pyjamas.Timer import Timer';
	$m.__track_lines__[10] = 'pyjamas.ui.Tooltip.py, line 10:\n    from pyjamas import Window';
	$m.__track_lines__[11] = 'pyjamas.ui.Tooltip.py, line 11:\n    from pyjamas import DOM';
	$m.__track_lines__[13] = 'pyjamas.ui.Tooltip.py, line 13:\n    tooltip_hide_timer = None';
	$m.__track_lines__[15] = 'pyjamas.ui.Tooltip.py, line 15:\n    class Tooltip(PopupPanel):';
	$m.__track_lines__[16] = 'pyjamas.ui.Tooltip.py, line 16:\n    def __init__(self, sender, offsetX, offsetY, contents,';
	$m.__track_lines__[20] = 'pyjamas.ui.Tooltip.py, line 20:\n    PopupPanel.__init__(self, True, **kwargs)';
	$m.__track_lines__[21] = 'pyjamas.ui.Tooltip.py, line 21:\n    self.show_delay = show_delay';
	$m.__track_lines__[22] = 'pyjamas.ui.Tooltip.py, line 22:\n    self.hide_delay = hide_delay';
	$m.__track_lines__[24] = 'pyjamas.ui.Tooltip.py, line 24:\n    if isinstance(contents, basestring):';
	$m.__track_lines__[25] = 'pyjamas.ui.Tooltip.py, line 25:\n    contents = HTML(contents)';
	$m.__track_lines__[26] = 'pyjamas.ui.Tooltip.py, line 26:\n    self.add(contents)';
	$m.__track_lines__[28] = 'pyjamas.ui.Tooltip.py, line 28:\n    left = sender.getAbsoluteLeft() + offsetX';
	$m.__track_lines__[29] = 'pyjamas.ui.Tooltip.py, line 29:\n    top = sender.getAbsoluteTop() + offsetY';
	$m.__track_lines__[31] = 'pyjamas.ui.Tooltip.py, line 31:\n    self.setPopupPosition(left, top)';
	$m.__track_lines__[32] = 'pyjamas.ui.Tooltip.py, line 32:\n    self.setStyleName(styleName)';
	$m.__track_lines__[34] = 'pyjamas.ui.Tooltip.py, line 34:\n    if tooltip_hide_timer:';
	$m.__track_lines__[35] = 'pyjamas.ui.Tooltip.py, line 35:\n    self.tooltip_show_timer = Timer(1, self)';
	$m.__track_lines__[37] = 'pyjamas.ui.Tooltip.py, line 37:\n    self.tooltip_show_timer = Timer(self.show_delay, self)';
	$m.__track_lines__[39] = 'pyjamas.ui.Tooltip.py, line 39:\n    def onShowImpl(self, popup):';
	$m.__track_lines__[40] = 'pyjamas.ui.Tooltip.py, line 40:\n    width = self.getOffsetWidth()';
	$m.__track_lines__[41] = 'pyjamas.ui.Tooltip.py, line 41:\n    heigth = self.getOffsetHeight()';
	$m.__track_lines__[42] = 'pyjamas.ui.Tooltip.py, line 42:\n    w_width = Window.getClientWidth()';
	$m.__track_lines__[43] = 'pyjamas.ui.Tooltip.py, line 43:\n    w_heigth = Window.getClientHeight()';
	$m.__track_lines__[44] = 'pyjamas.ui.Tooltip.py, line 44:\n    if w_width > width and w_heigth > heigth:';
	$m.__track_lines__[45] = 'pyjamas.ui.Tooltip.py, line 45:\n    offset_x = self.getAbsoluteLeft()';
	$m.__track_lines__[46] = 'pyjamas.ui.Tooltip.py, line 46:\n    offset_y = self.getAbsoluteTop()';
	$m.__track_lines__[47] = 'pyjamas.ui.Tooltip.py, line 47:\n    element = self.getElement()';
	$m.__track_lines__[48] = 'pyjamas.ui.Tooltip.py, line 48:\n    if (offset_x + width) > w_width:';
	$m.__track_lines__[49] = 'pyjamas.ui.Tooltip.py, line 49:\n    offset_x = w_width - width';
	$m.__track_lines__[50] = 'pyjamas.ui.Tooltip.py, line 50:\n    DOM.setStyleAttribute(element, "left", "%dpx" % offset_x)';
	$m.__track_lines__[51] = 'pyjamas.ui.Tooltip.py, line 51:\n    if (offset_y + heigth) > w_heigth:';
	$m.__track_lines__[52] = 'pyjamas.ui.Tooltip.py, line 52:\n    offset_y = w_heigth - heigth';
	$m.__track_lines__[53] = 'pyjamas.ui.Tooltip.py, line 53:\n    DOM.setStyleAttribute(element, "top", "%dpx" % offset_y)';
	$m.__track_lines__[55] = 'pyjamas.ui.Tooltip.py, line 55:\n    def show(self):';
	$m.__track_lines__[56] = 'pyjamas.ui.Tooltip.py, line 56:\n    global tooltip_hide_timer';
	$m.__track_lines__[59] = 'pyjamas.ui.Tooltip.py, line 59:\n    tooltip_hide_timer = Timer(self.hide_delay, self)';
	$m.__track_lines__[60] = 'pyjamas.ui.Tooltip.py, line 60:\n    PopupPanel.show(self)';
	$m.__track_lines__[62] = 'pyjamas.ui.Tooltip.py, line 62:\n    def hide(self, autoClosed=False):';
	$m.__track_lines__[63] = 'pyjamas.ui.Tooltip.py, line 63:\n    self.tooltip_show_timer.cancel()';
	$m.__track_lines__[64] = 'pyjamas.ui.Tooltip.py, line 64:\n    PopupPanel.hide(self, autoClosed)';
	$m.__track_lines__[66] = 'pyjamas.ui.Tooltip.py, line 66:\n    def onTimer(self, timer):';
	$m.__track_lines__[67] = 'pyjamas.ui.Tooltip.py, line 67:\n    global tooltip_hide_timer';
	$m.__track_lines__[70] = 'pyjamas.ui.Tooltip.py, line 70:\n    if timer is tooltip_hide_timer:';
	$m.__track_lines__[71] = 'pyjamas.ui.Tooltip.py, line 71:\n    tooltip_hide_timer = None';
	$m.__track_lines__[73] = 'pyjamas.ui.Tooltip.py, line 73:\n    if timer is self.tooltip_show_timer:';
	$m.__track_lines__[74] = 'pyjamas.ui.Tooltip.py, line 74:\n    self.show()';
	$m.__track_lines__[76] = 'pyjamas.ui.Tooltip.py, line 76:\n    self.hide()';
	$m.__track_lines__[79] = 'pyjamas.ui.Tooltip.py, line 79:\n    class TooltipListener:';
	$m.__track_lines__[80] = 'pyjamas.ui.Tooltip.py, line 80:\n    DEFAULT_TOOLTIP_STYLE = "TooltipPopup"';
	$m.__track_lines__[81] = 'pyjamas.ui.Tooltip.py, line 81:\n    DEFAULT_OFFSET_X = 10';
	$m.__track_lines__[82] = 'pyjamas.ui.Tooltip.py, line 82:\n    DEFAULT_OFFSET_Y = 35';
	$m.__track_lines__[84] = 'pyjamas.ui.Tooltip.py, line 84:\n    def __init__(self, text, show_delay = 1000, hide_delay = 5000, styleName = ""):';
	$m.__track_lines__[85] = 'pyjamas.ui.Tooltip.py, line 85:\n    if not styleName:';
	$m.__track_lines__[86] = 'pyjamas.ui.Tooltip.py, line 86:\n    styleName = self.DEFAULT_TOOLTIP_STYLE';
	$m.__track_lines__[88] = 'pyjamas.ui.Tooltip.py, line 88:\n    self.tooltip = None';
	$m.__track_lines__[89] = 'pyjamas.ui.Tooltip.py, line 89:\n    self.text = text';
	$m.__track_lines__[90] = 'pyjamas.ui.Tooltip.py, line 90:\n    self.styleName = styleName';
	$m.__track_lines__[91] = 'pyjamas.ui.Tooltip.py, line 91:\n    self.show_delay = show_delay';
	$m.__track_lines__[92] = 'pyjamas.ui.Tooltip.py, line 92:\n    self.hide_delay = hide_delay';
	$m.__track_lines__[93] = 'pyjamas.ui.Tooltip.py, line 93:\n    self.offsetX = self.DEFAULT_OFFSET_X';
	$m.__track_lines__[94] = 'pyjamas.ui.Tooltip.py, line 94:\n    self.offsetY = self.DEFAULT_OFFSET_Y';
	$m.__track_lines__[96] = 'pyjamas.ui.Tooltip.py, line 96:\n    def onMouseEnter(self, sender):';
	$m.__track_lines__[97] = 'pyjamas.ui.Tooltip.py, line 97:\n    self.hide()';
	$m.__track_lines__[98] = 'pyjamas.ui.Tooltip.py, line 98:\n    self.tooltip = Tooltip(sender, self.offsetX, self.offsetY, self.text, self.show_delay, self.hide_delay, self.styleName)';
	$m.__track_lines__[100] = 'pyjamas.ui.Tooltip.py, line 100:\n    def onMouseLeave(self, sender):';
	$m.__track_lines__[101] = 'pyjamas.ui.Tooltip.py, line 101:\n    self.hide()';
	$m.__track_lines__[103] = 'pyjamas.ui.Tooltip.py, line 103:\n    def onMouseMove(self, sender, x, y):';
	$m.__track_lines__[104] = 'pyjamas.ui.Tooltip.py, line 104:\n    pass';
	$m.__track_lines__[106] = 'pyjamas.ui.Tooltip.py, line 106:\n    def onMouseDown(self, sender, x, y):';
	$m.__track_lines__[107] = 'pyjamas.ui.Tooltip.py, line 107:\n    pass';
	$m.__track_lines__[109] = 'pyjamas.ui.Tooltip.py, line 109:\n    def onMouseUp(self, sender, x, y):';
	$m.__track_lines__[110] = 'pyjamas.ui.Tooltip.py, line 110:\n    pass';
	$m.__track_lines__[112] = 'pyjamas.ui.Tooltip.py, line 112:\n    def getStyleName(self):';
	$m.__track_lines__[113] = 'pyjamas.ui.Tooltip.py, line 113:\n    return self.styleName';
	$m.__track_lines__[115] = 'pyjamas.ui.Tooltip.py, line 115:\n    def setStyleName(self, styleName):';
	$m.__track_lines__[116] = 'pyjamas.ui.Tooltip.py, line 116:\n    self.styleName = styleName';
	$m.__track_lines__[118] = 'pyjamas.ui.Tooltip.py, line 118:\n    def getOffsetX(self):';
	$m.__track_lines__[119] = 'pyjamas.ui.Tooltip.py, line 119:\n    return self.offsetX';
	$m.__track_lines__[121] = 'pyjamas.ui.Tooltip.py, line 121:\n    def setOffsetX(self, offsetX):';
	$m.__track_lines__[122] = 'pyjamas.ui.Tooltip.py, line 122:\n    self.offsetX = offsetX';
	$m.__track_lines__[124] = 'pyjamas.ui.Tooltip.py, line 124:\n    def getOffsetY(self):';
	$m.__track_lines__[125] = 'pyjamas.ui.Tooltip.py, line 125:\n    return self.offsetY';
	$m.__track_lines__[127] = 'pyjamas.ui.Tooltip.py, line 127:\n    def setOffsetY(self, offsetY):';
	$m.__track_lines__[128] = 'pyjamas.ui.Tooltip.py, line 128:\n    self.offsetY = offsetY';
	$m.__track_lines__[130] = 'pyjamas.ui.Tooltip.py, line 130:\n    def hide(self):';
	$m.__track_lines__[131] = 'pyjamas.ui.Tooltip.py, line 131:\n    if self.tooltip is not None:';
	$m.__track_lines__[132] = 'pyjamas.ui.Tooltip.py, line 132:\n    self.tooltip.hide()';
	$m.__track_lines__[134] = "pyjamas.ui.Tooltip.py, line 134:\n    Factory.registerClass('pyjamas.ui.Tooltip', 'Tooltip', Tooltip)";


	$pyjs['track']['module']='pyjamas.ui.Tooltip';
	$pyjs['track']['lineno']=1;
	$pyjs['track']['lineno']=5;
	$pyjs['track']={'module':$pyjs['track']['module'],'lineno':$pyjs['track']['lineno']};$pyjs['trackstack']['push']($pyjs['track']);
	$m['PopupPanel'] = $p['___import___']('pyjamas.ui.PopupPanel.PopupPanel', 'pyjamas.ui', null, false);
	$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
	$pyjs['track']['lineno']=6;
	$pyjs['track']={'module':$pyjs['track']['module'],'lineno':$pyjs['track']['lineno']};$pyjs['trackstack']['push']($pyjs['track']);
	$m['Factory'] = $p['___import___']('pyjamas.Factory', 'pyjamas.ui', null, false);
	$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
	$pyjs['track']['lineno']=7;
	$pyjs['track']={'module':$pyjs['track']['module'],'lineno':$pyjs['track']['lineno']};$pyjs['trackstack']['push']($pyjs['track']);
	$m['HTML'] = $p['___import___']('pyjamas.ui.HTML.HTML', 'pyjamas.ui', null, false);
	$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
	$pyjs['track']['lineno']=8;
	$pyjs['track']={'module':$pyjs['track']['module'],'lineno':$pyjs['track']['lineno']};$pyjs['trackstack']['push']($pyjs['track']);
	$m['RootPanel'] = $p['___import___']('pyjamas.ui.RootPanel.RootPanel', 'pyjamas.ui', null, false);
	$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
	$pyjs['track']['lineno']=9;
	$pyjs['track']={'module':$pyjs['track']['module'],'lineno':$pyjs['track']['lineno']};$pyjs['trackstack']['push']($pyjs['track']);
	$m['Timer'] = $p['___import___']('pyjamas.Timer.Timer', 'pyjamas.ui', null, false);
	$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
	$pyjs['track']['lineno']=10;
	$pyjs['track']={'module':$pyjs['track']['module'],'lineno':$pyjs['track']['lineno']};$pyjs['trackstack']['push']($pyjs['track']);
	$m['Window'] = $p['___import___']('pyjamas.Window', 'pyjamas.ui', null, false);
	$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
	$pyjs['track']['lineno']=11;
	$pyjs['track']={'module':$pyjs['track']['module'],'lineno':$pyjs['track']['lineno']};$pyjs['trackstack']['push']($pyjs['track']);
	$m['DOM'] = $p['___import___']('pyjamas.DOM', 'pyjamas.ui', null, false);
	$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
	$pyjs['track']['lineno']=13;
	$m['tooltip_hide_timer'] = null;
	$pyjs['track']['lineno']=15;
	$m['Tooltip'] = (function(){
		var $cls_definition = new Object();
		var $method;
		$cls_definition['__module__'] = 'pyjamas.ui.Tooltip';
		$pyjs['track']['lineno']=16;
		$method = $pyjs__bind_method2('__init__', function(sender, offsetX, offsetY, contents, show_delay, hide_delay, styleName) {
			if (this['__is_instance__'] === true) {
				var self = this;
				var kwargs = arguments['length'] >= 8 ? arguments[arguments['length']-1] : arguments[arguments['length']];
				if (kwargs === null || typeof kwargs != 'object' || kwargs['__name__'] != 'dict' || typeof kwargs['$pyjs_is_kwarg'] == 'undefined') {
					var kwargs = arguments[arguments['length']+1];
				} else {
					delete kwargs['$pyjs_is_kwarg'];
				}
			} else {
				var self = arguments[0];
				sender = arguments[1];
				offsetX = arguments[2];
				offsetY = arguments[3];
				contents = arguments[4];
				show_delay = arguments[5];
				hide_delay = arguments[6];
				styleName = arguments[7];
				var kwargs = arguments['length'] >= 9 ? arguments[arguments['length']-1] : arguments[arguments['length']];
				if (kwargs === null || typeof kwargs != 'object' || kwargs['__name__'] != 'dict' || typeof kwargs['$pyjs_is_kwarg'] == 'undefined') {
					kwargs = arguments[arguments['length']+1];
				} else {
					delete kwargs['$pyjs_is_kwarg'];
				}
			}
			if (typeof kwargs == 'undefined') {
				kwargs = $p['__empty_dict']();
				if (typeof styleName != 'undefined') {
					if (styleName !== null && typeof styleName['$pyjs_is_kwarg'] != 'undefined') {
						kwargs = styleName;
						styleName = arguments[8];
					}
				} else 				if (typeof hide_delay != 'undefined') {
					if (hide_delay !== null && typeof hide_delay['$pyjs_is_kwarg'] != 'undefined') {
						kwargs = hide_delay;
						hide_delay = arguments[8];
					}
				} else 				if (typeof show_delay != 'undefined') {
					if (show_delay !== null && typeof show_delay['$pyjs_is_kwarg'] != 'undefined') {
						kwargs = show_delay;
						show_delay = arguments[8];
					}
				} else 				if (typeof contents != 'undefined') {
					if (contents !== null && typeof contents['$pyjs_is_kwarg'] != 'undefined') {
						kwargs = contents;
						contents = arguments[8];
					}
				} else 				if (typeof offsetY != 'undefined') {
					if (offsetY !== null && typeof offsetY['$pyjs_is_kwarg'] != 'undefined') {
						kwargs = offsetY;
						offsetY = arguments[8];
					}
				} else 				if (typeof offsetX != 'undefined') {
					if (offsetX !== null && typeof offsetX['$pyjs_is_kwarg'] != 'undefined') {
						kwargs = offsetX;
						offsetX = arguments[8];
					}
				} else 				if (typeof sender != 'undefined') {
					if (sender !== null && typeof sender['$pyjs_is_kwarg'] != 'undefined') {
						kwargs = sender;
						sender = arguments[8];
					}
				} else 				if (typeof self != 'undefined') {
					if (self !== null && typeof self['$pyjs_is_kwarg'] != 'undefined') {
						kwargs = self;
						self = arguments[8];
					}
				} else {
				}
			}
			var top,$add2,$add3,$add1,$add4,left;
			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':16};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=16;
			$pyjs['track']['lineno']=20;
			(function(){try{try{$pyjs['in_try_except'] += 1;
			return $pyjs_kwargs_call($m['PopupPanel'], '__init__', null, kwargs, [{}, self, true]);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_1_err){if (!$p['isinstance']($pyjs_dbg_1_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_1_err);}throw $pyjs_dbg_1_err;
}})();
			$pyjs['track']['lineno']=21;
			self['show_delay'] = show_delay;
			$pyjs['track']['lineno']=22;
			self['hide_delay'] = hide_delay;
			$pyjs['track']['lineno']=24;
			if ((function(){try{try{$pyjs['in_try_except'] += 1;
				return $p['bool']((function(){try{try{$pyjs['in_try_except'] += 1;
			return $p['isinstance'](contents, $p['basestring']);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_2_err){if (!$p['isinstance']($pyjs_dbg_2_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_2_err);}throw $pyjs_dbg_2_err;
}})());
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_3_err){if (!$p['isinstance']($pyjs_dbg_3_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_3_err);}throw $pyjs_dbg_3_err;
}})()) {
				$pyjs['track']['lineno']=25;
				contents = (function(){try{try{$pyjs['in_try_except'] += 1;
				return $m['HTML'](contents);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_4_err){if (!$p['isinstance']($pyjs_dbg_4_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_4_err);}throw $pyjs_dbg_4_err;
}})();
			}
			$pyjs['track']['lineno']=26;
			(function(){try{try{$pyjs['in_try_except'] += 1;
			return self['add'](contents);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_5_err){if (!$p['isinstance']($pyjs_dbg_5_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_5_err);}throw $pyjs_dbg_5_err;
}})();
			$pyjs['track']['lineno']=28;
			left = $p['__op_add']($add1=(function(){try{try{$pyjs['in_try_except'] += 1;
			return sender['getAbsoluteLeft']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_6_err){if (!$p['isinstance']($pyjs_dbg_6_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_6_err);}throw $pyjs_dbg_6_err;
}})(),$add2=offsetX);
			$pyjs['track']['lineno']=29;
			top = $p['__op_add']($add3=(function(){try{try{$pyjs['in_try_except'] += 1;
			return sender['getAbsoluteTop']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_7_err){if (!$p['isinstance']($pyjs_dbg_7_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_7_err);}throw $pyjs_dbg_7_err;
}})(),$add4=offsetY);
			$pyjs['track']['lineno']=31;
			(function(){try{try{$pyjs['in_try_except'] += 1;
			return self['setPopupPosition'](left, top);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_8_err){if (!$p['isinstance']($pyjs_dbg_8_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_8_err);}throw $pyjs_dbg_8_err;
}})();
			$pyjs['track']['lineno']=32;
			(function(){try{try{$pyjs['in_try_except'] += 1;
			return self['setStyleName'](styleName);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_9_err){if (!$p['isinstance']($pyjs_dbg_9_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_9_err);}throw $pyjs_dbg_9_err;
}})();
			$pyjs['track']['lineno']=34;
			if ((function(){try{try{$pyjs['in_try_except'] += 1;
				return $p['bool']($m['tooltip_hide_timer']);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_10_err){if (!$p['isinstance']($pyjs_dbg_10_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_10_err);}throw $pyjs_dbg_10_err;
}})()) {
				$pyjs['track']['lineno']=35;
				self['tooltip_show_timer'] = (function(){try{try{$pyjs['in_try_except'] += 1;
				return $m['Timer'](1, self);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_11_err){if (!$p['isinstance']($pyjs_dbg_11_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_11_err);}throw $pyjs_dbg_11_err;
}})();
			}
			else {
				$pyjs['track']['lineno']=37;
				self['tooltip_show_timer'] = (function(){try{try{$pyjs['in_try_except'] += 1;
				return $m['Timer']($p['getattr'](self, 'show_delay'), self);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_12_err){if (!$p['isinstance']($pyjs_dbg_12_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_12_err);}throw $pyjs_dbg_12_err;
}})();
			}
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,['kwargs'],['self'],['sender'],['offsetX'],['offsetY'],['contents'],['show_delay'],['hide_delay'],['styleName']]);
		$cls_definition['__init__'] = $method;
		$pyjs['track']['lineno']=39;
		$method = $pyjs__bind_method2('onShowImpl', function(popup) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				popup = arguments[1];
			}
			var heigth,$and1,$add5,$add6,$sub2,element,width,offset_x,offset_y,w_heigth,$sub3,w_width,$sub1,$sub4,$add8,$and2,$add7;
			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':39};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=39;
			$pyjs['track']['lineno']=40;
			width = (function(){try{try{$pyjs['in_try_except'] += 1;
			return self['getOffsetWidth']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_13_err){if (!$p['isinstance']($pyjs_dbg_13_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_13_err);}throw $pyjs_dbg_13_err;
}})();
			$pyjs['track']['lineno']=41;
			heigth = (function(){try{try{$pyjs['in_try_except'] += 1;
			return self['getOffsetHeight']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_14_err){if (!$p['isinstance']($pyjs_dbg_14_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_14_err);}throw $pyjs_dbg_14_err;
}})();
			$pyjs['track']['lineno']=42;
			w_width = (function(){try{try{$pyjs['in_try_except'] += 1;
			return $m['Window']['getClientWidth']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_15_err){if (!$p['isinstance']($pyjs_dbg_15_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_15_err);}throw $pyjs_dbg_15_err;
}})();
			$pyjs['track']['lineno']=43;
			w_heigth = (function(){try{try{$pyjs['in_try_except'] += 1;
			return $m['Window']['getClientHeight']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_16_err){if (!$p['isinstance']($pyjs_dbg_16_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_16_err);}throw $pyjs_dbg_16_err;
}})();
			$pyjs['track']['lineno']=44;
			if ((function(){try{try{$pyjs['in_try_except'] += 1;
				return $p['bool'](($p['bool']($and1=($p['cmp'](w_width, width) == 1))?($p['cmp'](w_heigth, heigth) == 1):$and1));
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_17_err){if (!$p['isinstance']($pyjs_dbg_17_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_17_err);}throw $pyjs_dbg_17_err;
}})()) {
				$pyjs['track']['lineno']=45;
				offset_x = (function(){try{try{$pyjs['in_try_except'] += 1;
				return self['getAbsoluteLeft']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_18_err){if (!$p['isinstance']($pyjs_dbg_18_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_18_err);}throw $pyjs_dbg_18_err;
}})();
				$pyjs['track']['lineno']=46;
				offset_y = (function(){try{try{$pyjs['in_try_except'] += 1;
				return self['getAbsoluteTop']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_19_err){if (!$p['isinstance']($pyjs_dbg_19_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_19_err);}throw $pyjs_dbg_19_err;
}})();
				$pyjs['track']['lineno']=47;
				element = (function(){try{try{$pyjs['in_try_except'] += 1;
				return self['getElement']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_20_err){if (!$p['isinstance']($pyjs_dbg_20_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_20_err);}throw $pyjs_dbg_20_err;
}})();
				$pyjs['track']['lineno']=48;
				if ((function(){try{try{$pyjs['in_try_except'] += 1;
					return $p['bool'](($p['cmp']($p['__op_add']($add5=offset_x,$add6=width), w_width) == 1));
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_21_err){if (!$p['isinstance']($pyjs_dbg_21_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_21_err);}throw $pyjs_dbg_21_err;
}})()) {
					$pyjs['track']['lineno']=49;
					offset_x = $p['__op_sub']($sub1=w_width,$sub2=width);
					$pyjs['track']['lineno']=50;
					(function(){try{try{$pyjs['in_try_except'] += 1;
					return $m['DOM']['setStyleAttribute'](element, 'left', (function(){try{try{$pyjs['in_try_except'] += 1;
					return $p['sprintf']('%dpx', offset_x);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_22_err){if (!$p['isinstance']($pyjs_dbg_22_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_22_err);}throw $pyjs_dbg_22_err;
}})());
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_23_err){if (!$p['isinstance']($pyjs_dbg_23_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_23_err);}throw $pyjs_dbg_23_err;
}})();
				}
				$pyjs['track']['lineno']=51;
				if ((function(){try{try{$pyjs['in_try_except'] += 1;
					return $p['bool'](($p['cmp']($p['__op_add']($add7=offset_y,$add8=heigth), w_heigth) == 1));
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_24_err){if (!$p['isinstance']($pyjs_dbg_24_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_24_err);}throw $pyjs_dbg_24_err;
}})()) {
					$pyjs['track']['lineno']=52;
					offset_y = $p['__op_sub']($sub3=w_heigth,$sub4=heigth);
					$pyjs['track']['lineno']=53;
					(function(){try{try{$pyjs['in_try_except'] += 1;
					return $m['DOM']['setStyleAttribute'](element, 'top', (function(){try{try{$pyjs['in_try_except'] += 1;
					return $p['sprintf']('%dpx', offset_y);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_25_err){if (!$p['isinstance']($pyjs_dbg_25_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_25_err);}throw $pyjs_dbg_25_err;
}})());
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_26_err){if (!$p['isinstance']($pyjs_dbg_26_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_26_err);}throw $pyjs_dbg_26_err;
}})();
				}
			}
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['popup']]);
		$cls_definition['onShowImpl'] = $method;
		$pyjs['track']['lineno']=55;
		$method = $pyjs__bind_method2('show', function() {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':55};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=55;
			$pyjs['track']['lineno']=56;
			$pyjs['track']['lineno']=59;
			$m['tooltip_hide_timer'] = (function(){try{try{$pyjs['in_try_except'] += 1;
			return $m['Timer']($p['getattr'](self, 'hide_delay'), self);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_27_err){if (!$p['isinstance']($pyjs_dbg_27_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_27_err);}throw $pyjs_dbg_27_err;
}})();
			$pyjs['track']['lineno']=60;
			(function(){try{try{$pyjs['in_try_except'] += 1;
			return $m['PopupPanel']['show'](self);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_28_err){if (!$p['isinstance']($pyjs_dbg_28_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_28_err);}throw $pyjs_dbg_28_err;
}})();
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self']]);
		$cls_definition['show'] = $method;
		$pyjs['track']['lineno']=62;
		$method = $pyjs__bind_method2('hide', function(autoClosed) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				autoClosed = arguments[1];
			}
			if (typeof autoClosed == 'undefined') autoClosed=arguments['callee']['__args__'][3][1];

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':62};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=62;
			$pyjs['track']['lineno']=63;
			(function(){try{try{$pyjs['in_try_except'] += 1;
			return self['tooltip_show_timer']['cancel']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_29_err){if (!$p['isinstance']($pyjs_dbg_29_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_29_err);}throw $pyjs_dbg_29_err;
}})();
			$pyjs['track']['lineno']=64;
			(function(){try{try{$pyjs['in_try_except'] += 1;
			return $m['PopupPanel']['hide'](self, autoClosed);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_30_err){if (!$p['isinstance']($pyjs_dbg_30_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_30_err);}throw $pyjs_dbg_30_err;
}})();
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['autoClosed', false]]);
		$cls_definition['hide'] = $method;
		$pyjs['track']['lineno']=66;
		$method = $pyjs__bind_method2('onTimer', function(timer) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				timer = arguments[1];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':66};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=66;
			$pyjs['track']['lineno']=67;
			$pyjs['track']['lineno']=70;
			if ((function(){try{try{$pyjs['in_try_except'] += 1;
				return $p['bool']((timer === $m['tooltip_hide_timer']));
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_31_err){if (!$p['isinstance']($pyjs_dbg_31_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_31_err);}throw $pyjs_dbg_31_err;
}})()) {
				$pyjs['track']['lineno']=71;
				$m['tooltip_hide_timer'] = null;
			}
			$pyjs['track']['lineno']=73;
			if ((function(){try{try{$pyjs['in_try_except'] += 1;
				return $p['bool']((timer === $p['getattr'](self, 'tooltip_show_timer')));
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_32_err){if (!$p['isinstance']($pyjs_dbg_32_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_32_err);}throw $pyjs_dbg_32_err;
}})()) {
				$pyjs['track']['lineno']=74;
				(function(){try{try{$pyjs['in_try_except'] += 1;
				return self['show']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_33_err){if (!$p['isinstance']($pyjs_dbg_33_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_33_err);}throw $pyjs_dbg_33_err;
}})();
			}
			else {
				$pyjs['track']['lineno']=76;
				(function(){try{try{$pyjs['in_try_except'] += 1;
				return self['hide']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_34_err){if (!$p['isinstance']($pyjs_dbg_34_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_34_err);}throw $pyjs_dbg_34_err;
}})();
			}
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['timer']]);
		$cls_definition['onTimer'] = $method;
		$pyjs['track']['lineno']=15;
		var $bases = new Array($m['PopupPanel']);
		var $data = $p['dict']();
		for (var $item in $cls_definition) { $data['__setitem__']($item, $cls_definition[$item]); }
		return $p['_create_class']('Tooltip', $p['tuple']($bases), $data);
	})();
	$pyjs['track']['lineno']=79;
	$m['TooltipListener'] = (function(){
		var $cls_definition = new Object();
		var $method;
		$cls_definition['__module__'] = 'pyjamas.ui.Tooltip';
		$pyjs['track']['lineno']=80;
		$cls_definition['DEFAULT_TOOLTIP_STYLE'] = 'TooltipPopup';
		$pyjs['track']['lineno']=81;
		$cls_definition['DEFAULT_OFFSET_X'] = 10;
		$pyjs['track']['lineno']=82;
		$cls_definition['DEFAULT_OFFSET_Y'] = 35;
		$pyjs['track']['lineno']=84;
		$method = $pyjs__bind_method2('__init__', function(text, show_delay, hide_delay, styleName) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				text = arguments[1];
				show_delay = arguments[2];
				hide_delay = arguments[3];
				styleName = arguments[4];
			}
			if (typeof show_delay == 'undefined') show_delay=arguments['callee']['__args__'][4][1];
			if (typeof hide_delay == 'undefined') hide_delay=arguments['callee']['__args__'][5][1];
			if (typeof styleName == 'undefined') styleName=arguments['callee']['__args__'][6][1];

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':84};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=84;
			$pyjs['track']['lineno']=85;
			if ((function(){try{try{$pyjs['in_try_except'] += 1;
				return $p['bool'](!$p['bool'](styleName));
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_35_err){if (!$p['isinstance']($pyjs_dbg_35_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_35_err);}throw $pyjs_dbg_35_err;
}})()) {
				$pyjs['track']['lineno']=86;
				styleName = $p['getattr'](self, 'DEFAULT_TOOLTIP_STYLE');
			}
			$pyjs['track']['lineno']=88;
			self['tooltip'] = null;
			$pyjs['track']['lineno']=89;
			self['text'] = text;
			$pyjs['track']['lineno']=90;
			self['styleName'] = styleName;
			$pyjs['track']['lineno']=91;
			self['show_delay'] = show_delay;
			$pyjs['track']['lineno']=92;
			self['hide_delay'] = hide_delay;
			$pyjs['track']['lineno']=93;
			self['offsetX'] = $p['getattr'](self, 'DEFAULT_OFFSET_X');
			$pyjs['track']['lineno']=94;
			self['offsetY'] = $p['getattr'](self, 'DEFAULT_OFFSET_Y');
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['text'],['show_delay', 1000],['hide_delay', 5000],['styleName', '']]);
		$cls_definition['__init__'] = $method;
		$pyjs['track']['lineno']=96;
		$method = $pyjs__bind_method2('onMouseEnter', function(sender) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				sender = arguments[1];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':96};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=96;
			$pyjs['track']['lineno']=97;
			(function(){try{try{$pyjs['in_try_except'] += 1;
			return self['hide']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_36_err){if (!$p['isinstance']($pyjs_dbg_36_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_36_err);}throw $pyjs_dbg_36_err;
}})();
			$pyjs['track']['lineno']=98;
			self['tooltip'] = (function(){try{try{$pyjs['in_try_except'] += 1;
			return $m['Tooltip'](sender, $p['getattr'](self, 'offsetX'), $p['getattr'](self, 'offsetY'), $p['getattr'](self, 'text'), $p['getattr'](self, 'show_delay'), $p['getattr'](self, 'hide_delay'), $p['getattr'](self, 'styleName'));
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_37_err){if (!$p['isinstance']($pyjs_dbg_37_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_37_err);}throw $pyjs_dbg_37_err;
}})();
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['sender']]);
		$cls_definition['onMouseEnter'] = $method;
		$pyjs['track']['lineno']=100;
		$method = $pyjs__bind_method2('onMouseLeave', function(sender) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				sender = arguments[1];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':100};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=100;
			$pyjs['track']['lineno']=101;
			(function(){try{try{$pyjs['in_try_except'] += 1;
			return self['hide']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_38_err){if (!$p['isinstance']($pyjs_dbg_38_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_38_err);}throw $pyjs_dbg_38_err;
}})();
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['sender']]);
		$cls_definition['onMouseLeave'] = $method;
		$pyjs['track']['lineno']=103;
		$method = $pyjs__bind_method2('onMouseMove', function(sender, x, y) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				sender = arguments[1];
				x = arguments[2];
				y = arguments[3];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':103};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=103;
			$pyjs['track']['lineno']=104;
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['sender'],['x'],['y']]);
		$cls_definition['onMouseMove'] = $method;
		$pyjs['track']['lineno']=106;
		$method = $pyjs__bind_method2('onMouseDown', function(sender, x, y) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				sender = arguments[1];
				x = arguments[2];
				y = arguments[3];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':106};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=106;
			$pyjs['track']['lineno']=107;
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['sender'],['x'],['y']]);
		$cls_definition['onMouseDown'] = $method;
		$pyjs['track']['lineno']=109;
		$method = $pyjs__bind_method2('onMouseUp', function(sender, x, y) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				sender = arguments[1];
				x = arguments[2];
				y = arguments[3];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':109};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=109;
			$pyjs['track']['lineno']=110;
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['sender'],['x'],['y']]);
		$cls_definition['onMouseUp'] = $method;
		$pyjs['track']['lineno']=112;
		$method = $pyjs__bind_method2('getStyleName', function() {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':112};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=112;
			$pyjs['track']['lineno']=113;
			$pyjs['track']['lineno']=113;
			var $pyjs__ret = $p['getattr'](self, 'styleName');
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return $pyjs__ret;
		}
	, 1, [null,null,['self']]);
		$cls_definition['getStyleName'] = $method;
		$pyjs['track']['lineno']=115;
		$method = $pyjs__bind_method2('setStyleName', function(styleName) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				styleName = arguments[1];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':115};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=115;
			$pyjs['track']['lineno']=116;
			self['styleName'] = styleName;
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['styleName']]);
		$cls_definition['setStyleName'] = $method;
		$pyjs['track']['lineno']=118;
		$method = $pyjs__bind_method2('getOffsetX', function() {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':118};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=118;
			$pyjs['track']['lineno']=119;
			$pyjs['track']['lineno']=119;
			var $pyjs__ret = $p['getattr'](self, 'offsetX');
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return $pyjs__ret;
		}
	, 1, [null,null,['self']]);
		$cls_definition['getOffsetX'] = $method;
		$pyjs['track']['lineno']=121;
		$method = $pyjs__bind_method2('setOffsetX', function(offsetX) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				offsetX = arguments[1];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':121};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=121;
			$pyjs['track']['lineno']=122;
			self['offsetX'] = offsetX;
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['offsetX']]);
		$cls_definition['setOffsetX'] = $method;
		$pyjs['track']['lineno']=124;
		$method = $pyjs__bind_method2('getOffsetY', function() {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':124};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=124;
			$pyjs['track']['lineno']=125;
			$pyjs['track']['lineno']=125;
			var $pyjs__ret = $p['getattr'](self, 'offsetY');
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return $pyjs__ret;
		}
	, 1, [null,null,['self']]);
		$cls_definition['getOffsetY'] = $method;
		$pyjs['track']['lineno']=127;
		$method = $pyjs__bind_method2('setOffsetY', function(offsetY) {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
				offsetY = arguments[1];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':127};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=127;
			$pyjs['track']['lineno']=128;
			self['offsetY'] = offsetY;
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self'],['offsetY']]);
		$cls_definition['setOffsetY'] = $method;
		$pyjs['track']['lineno']=130;
		$method = $pyjs__bind_method2('hide', function() {
			if (this['__is_instance__'] === true) {
				var self = this;
			} else {
				var self = arguments[0];
			}

			$pyjs['track']={'module':'pyjamas.ui.Tooltip', 'lineno':130};$pyjs['trackstack']['push']($pyjs['track']);
			$pyjs['track']['module']='pyjamas.ui.Tooltip';
			$pyjs['track']['lineno']=130;
			$pyjs['track']['lineno']=131;
			if ((function(){try{try{$pyjs['in_try_except'] += 1;
				return $p['bool'](($p['getattr'](self, 'tooltip') !== null));
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_39_err){if (!$p['isinstance']($pyjs_dbg_39_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_39_err);}throw $pyjs_dbg_39_err;
}})()) {
				$pyjs['track']['lineno']=132;
				(function(){try{try{$pyjs['in_try_except'] += 1;
				return self['tooltip']['hide']();
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_40_err){if (!$p['isinstance']($pyjs_dbg_40_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_40_err);}throw $pyjs_dbg_40_err;
}})();
			}
			$pyjs['trackstack']['pop']();$pyjs['track']=$pyjs['trackstack']['pop']();$pyjs['trackstack']['push']($pyjs['track']);
			return null;
		}
	, 1, [null,null,['self']]);
		$cls_definition['hide'] = $method;
		$pyjs['track']['lineno']=79;
		var $bases = new Array(pyjslib['object']);
		var $data = $p['dict']();
		for (var $item in $cls_definition) { $data['__setitem__']($item, $cls_definition[$item]); }
		return $p['_create_class']('TooltipListener', $p['tuple']($bases), $data);
	})();
	$pyjs['track']['lineno']=134;
	(function(){try{try{$pyjs['in_try_except'] += 1;
	return $m['Factory']['registerClass']('pyjamas.ui.Tooltip', 'Tooltip', $m['Tooltip']);
}finally{$pyjs['in_try_except']-=1;}}catch($pyjs_dbg_41_err){if (!$p['isinstance']($pyjs_dbg_41_err, $p['StopIteration'])){$p['_handle_exception']($pyjs_dbg_41_err);}throw $pyjs_dbg_41_err;
}})();
	return this;
}; /* end pyjamas.ui.Tooltip */


/* end module: pyjamas.ui.Tooltip */


/*
PYJS_DEPS: ['pyjamas.ui.PopupPanel.PopupPanel', 'pyjamas', 'pyjamas.ui', 'pyjamas.ui.PopupPanel', 'pyjamas.Factory', 'pyjamas.ui.HTML.HTML', 'pyjamas.ui.HTML', 'pyjamas.ui.RootPanel.RootPanel', 'pyjamas.ui.RootPanel', 'pyjamas.Timer.Timer', 'pyjamas.Timer', 'pyjamas.Window', 'pyjamas.DOM']
*/
