/* start module: pyjamas.ui.Controls */
pyjamas.ui.Controls = $pyjs.loaded_modules["pyjamas.ui.Controls"] = function (__mod_name__) {
if(pyjamas.ui.Controls.__was_initialized__) return pyjamas.ui.Controls;
pyjamas.ui.Controls.__was_initialized__ = true;
if (__mod_name__ == null) __mod_name__ = 'pyjamas.ui.Controls';
var __name__ = pyjamas.ui.Controls.__name__ = __mod_name__;
var Controls = pyjamas.ui.Controls;

 pyjslib.__import__(['pyjamas.ui.math', 'math'], 'math', 'pyjamas.ui.Controls')
 pyjamas.ui.Controls.math = $pyjs.__modules__.math
 pyjslib.__import__(['pyjamas.ui.pyjamas.DOM', 'pyjamas.ui.pyjamas', 'pyjamas.DOM', 'pyjamas'], 'pyjamas.DOM', 'pyjamas.ui.Controls')
 pyjamas.ui.Controls.DOM = $pyjs.__modules__.pyjamas.DOM;
 pyjslib.__import__(['pyjamas.ui.pyjamas.ui.FocusWidget.FocusWidget', 'pyjamas.ui.pyjamas.ui.FocusWidget', 'pyjamas.ui.FocusWidget.FocusWidget', 'pyjamas.ui.FocusWidget'], 'pyjamas.ui.FocusWidget.FocusWidget', 'pyjamas.ui.Controls')
 pyjamas.ui.Controls.FocusWidget = $pyjs.__modules__.pyjamas.ui.FocusWidget.FocusWidget;
 pyjslib.__import__(['pyjamas.ui.pyjamas.ui.MouseListener', 'pyjamas.ui.pyjamas.ui', 'pyjamas.ui.MouseListener', 'pyjamas.ui'], 'pyjamas.ui.MouseListener', 'pyjamas.ui.Controls')
 pyjamas.ui.Controls.MouseListener = $pyjs.__modules__.pyjamas.ui.MouseListener;
 pyjslib.__import__(['pyjamas.ui.pyjamas.ui.Event', 'pyjamas.ui.pyjamas.ui', 'pyjamas.ui.Event', 'pyjamas.ui'], 'pyjamas.ui.Event', 'pyjamas.ui.Controls')
 pyjamas.ui.Controls.Event = $pyjs.__modules__.pyjamas.ui.Event;
 pyjslib.__import__(['pyjamas.ui.pyjamas.ui.Focus', 'pyjamas.ui.pyjamas.ui', 'pyjamas.ui.Focus', 'pyjamas.ui'], 'pyjamas.ui.Focus', 'pyjamas.ui.Controls')
 pyjamas.ui.Controls.Focus = $pyjs.__modules__.pyjamas.ui.Focus;
 pyjslib.__import__(['pyjamas.ui.pyjamas.ui.KeyboardListener', 'pyjamas.ui.pyjamas.ui', 'pyjamas.ui.KeyboardListener', 'pyjamas.ui'], 'pyjamas.ui.KeyboardListener', 'pyjamas.ui.Controls')
 pyjamas.ui.Controls.KeyboardListener = $pyjs.__modules__.pyjamas.ui.KeyboardListener;
 pyjslib.__import__(['pyjamas.ui.pyjamas.ui.TextBox.TextBox', 'pyjamas.ui.pyjamas.ui.TextBox', 'pyjamas.ui.TextBox.TextBox', 'pyjamas.ui.TextBox'], 'pyjamas.ui.TextBox.TextBox', 'pyjamas.ui.Controls')
 pyjamas.ui.Controls.TextBox = $pyjs.__modules__.pyjamas.ui.TextBox.TextBox;
 pyjslib.__import__(['pyjamas.ui.pyjamas.log', 'pyjamas.ui.pyjamas', 'pyjamas.log', 'pyjamas'], 'pyjamas.log', 'pyjamas.ui.Controls')
 pyjamas.ui.Controls.log = $pyjs.__modules__.pyjamas.log;
pyjamas.ui.Controls.Control = (function(){
	var cls_instance = pyjs__class_instance('Control');
	var cls_definition = new Object();
	cls_definition.__md5__ = '20c19601b040557afb1a9c8b66e26150';
	cls_definition.__init__ = pyjs__bind_method(cls_instance, '__init__', function(element, min_value, max_value, start_value, step) {
		if (this.__is_instance__ === true) {
			var self = this;
			var kwargs = arguments.length >= 6 ? arguments[arguments.length-1] : arguments[arguments.length];
			if (typeof kwargs != 'object' || kwargs.__is_instance__ !== true || kwargs.__name__ != 'Dict') {
				kwargs = arguments[arguments.length+1];
			}
		} else {
			var self = arguments[0];
			element = arguments[1];
			min_value = arguments[2];
			max_value = arguments[3];
			start_value = arguments[4];
			step = arguments[5];
			var kwargs = arguments.length >= 7 ? arguments[arguments.length-1] : arguments[arguments.length];
			if (typeof kwargs != 'object' || kwargs.__is_instance__ !== true || kwargs.__name__ != 'Dict') {
				kwargs = arguments[arguments.length+1];
			}
		}
		if (typeof kwargs == 'undefined') {
			kwargs = pyjslib.Dict({});
			if (typeof step != 'undefined') {
				if (pyjslib.get_pyjs_classtype(step) == 'Dict') {
					kwargs = step;
					step = arguments[6];
				}
			} else 			if (typeof start_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(start_value) == 'Dict') {
					kwargs = start_value;
					start_value = arguments[6];
				}
			} else 			if (typeof max_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(max_value) == 'Dict') {
					kwargs = max_value;
					max_value = arguments[6];
				}
			} else 			if (typeof min_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(min_value) == 'Dict') {
					kwargs = min_value;
					min_value = arguments[6];
				}
			} else 			if (typeof element != 'undefined') {
				if (pyjslib.get_pyjs_classtype(element) == 'Dict') {
					kwargs = element;
					element = arguments[6];
				}
			} else 			if (typeof self != 'undefined') {
				if (pyjslib.get_pyjs_classtype(self) == 'Dict') {
					kwargs = self;
					self = arguments[6];
				}
			} else {
			}
		}
		if (typeof start_value == 'undefined') start_value=null;
		if (typeof step == 'undefined') step=null;

		self.min_value = min_value;
		self.max_value = max_value;
		if (pyjslib.bool((start_value === null))) {
			start_value = min_value;
		}
		if (pyjslib.bool((step === null))) {
			step =  (  ( self.max_value - self.min_value )  / 20 ) ;
		}
		self.step = step;
		self.value = start_value;
		self.valuechange_listeners = new pyjslib.List([]);
		self.mouseListeners = new pyjslib.List([]);
		self.dragging = false;
		if (pyjslib.bool(!(kwargs.has_key(String('TabIndex'))))) {
			kwargs.__setitem__(String('TabIndex'), 0);
		}
		pyjs_kwargs_call(pyjamas.ui.Controls.FocusWidget, '__init__', null, kwargs, [{}, self, element]);
		self.sinkEvents((pyjamas.ui.Controls.Event.FOCUSEVENTS | pyjamas.ui.Controls.Event.ONCLICK | pyjamas.ui.Controls.Event.MOUSEEVENTS | pyjamas.ui.Controls.Event.KEYEVENTS));
		return null;
	}
	, 1, [null,'kwargs','self', 'element', 'min_value', 'max_value', 'start_value', 'step']);
	cls_definition.onBrowserEvent = pyjs__bind_method(cls_instance, 'onBrowserEvent', function(event) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			event = arguments[1];
		}
		var type;
		type = pyjamas.ui.Controls.DOM.eventGetType(event);
		if (pyjslib.bool((pyjslib.eq(type, String('mousedown'))) || (pyjslib.eq(type, String('mouseup'))) || (pyjslib.eq(type, String('mousemove'))) || (pyjslib.eq(type, String('mouseover'))) || (pyjslib.eq(type, String('mouseout'))))) {
			pyjamas.ui.Controls.MouseListener.fireMouseEvent(self.mouseListeners, self, event);
		}
		else {
			pyjamas.ui.Controls.log.writebr(pyjslib.sprintf(String('%s %d'), new pyjslib.Tuple([type, pyjslib.len(self.keyboardListeners)])));
			pyjamas.ui.Controls.FocusWidget.onBrowserEvent(self, event);
		}
		return null;
	}
	, 1, [null,null,'self', 'event']);
	cls_definition.onFocus = pyjs__bind_method(cls_instance, 'onFocus', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}

 		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.onLostFocus = pyjs__bind_method(cls_instance, 'onLostFocus', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}

 		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.onClick = pyjs__bind_method(cls_instance, 'onClick', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}
		if (typeof sender == 'undefined') sender=null;

 		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.processValue = pyjs__bind_method(cls_instance, 'processValue', function(value) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			value = arguments[1];
		}

		value = pyjamas.ui.Controls.math.floor( (  ( value - self.min_value )  / self.step ) );
		value =  (  ( value * self.step )  + self.min_value ) ;
		value = pyjslib.max(value, self.min_value);
		value = pyjslib.min(value, self.max_value);
		return value;
	}
	, 1, [null,null,'self', 'value']);
	cls_definition.setValue = pyjs__bind_method(cls_instance, 'setValue', function(new_value, notify) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			new_value = arguments[1];
			notify = arguments[2];
		}
		if (typeof notify == 'undefined') notify=1;
		var listener,old_value;
		old_value = self.value;
		self.value = new_value;
		if (pyjslib.bool(!(notify))) {
			return null;
		}
		var __listener = self.valuechange_listeners.__iter__();
		try {
			while (true) {
				var listener = __listener.next();
				
				listener.onControlValueChanged(self, old_value, new_value);
			}
		} catch (e) {
			if (e.__name__ != 'StopIteration') {
				throw e;
			}
		}
		return null;
	}
	, 1, [null,null,'self', 'new_value', 'notify']);
	cls_definition.addControlValueListener = pyjs__bind_method(cls_instance, 'addControlValueListener', function(listener) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			listener = arguments[1];
		}

		self.valuechange_listeners.append(listener);
		return null;
	}
	, 1, [null,null,'self', 'listener']);
	cls_definition.removeControlValueListener = pyjs__bind_method(cls_instance, 'removeControlValueListener', function(listener) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			listener = arguments[1];
		}

		self.valuechange_listeners.remove(listener);
		return null;
	}
	, 1, [null,null,'self', 'listener']);
	cls_definition.addMouseListener = pyjs__bind_method(cls_instance, 'addMouseListener', function(listener) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			listener = arguments[1];
		}

		self.mouseListeners.append(listener);
		return null;
	}
	, 1, [null,null,'self', 'listener']);
	cls_definition.removeMouseListener = pyjs__bind_method(cls_instance, 'removeMouseListener', function(listener) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			listener = arguments[1];
		}

		self.mouseListeners.remove(listener);
		return null;
	}
	, 1, [null,null,'self', 'listener']);
	cls_definition.moveControl = pyjs__bind_method(cls_instance, 'moveControl', function(x, y) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			x = arguments[1];
			y = arguments[2];
		}

 		return null;
	}
	, 1, [null,null,'self', 'x', 'y']);
	cls_definition.onClick = pyjs__bind_method(cls_instance, 'onClick', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}
		if (typeof sender == 'undefined') sender=null;
		var mouse_x,mouse_y,event;
		event = pyjamas.ui.Controls.DOM.eventGetCurrentEvent();
		mouse_x = pyjamas.ui.Controls.DOM.eventGetClientX(event);
		mouse_y = pyjamas.ui.Controls.DOM.eventGetClientY(event);
		self.moveControl( ( mouse_x - self.getAbsoluteLeft() ) ,  ( mouse_y - self.getAbsoluteTop() ) );
		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.onMouseMove = pyjs__bind_method(cls_instance, '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];
		}

		if (pyjslib.bool(!(self.dragging))) {
			return null;
		}
		self.moveControl(x, y);
		return null;
	}
	, 1, [null,null,'self', 'sender', 'x', 'y']);
	cls_definition.onLoseFocus = pyjs__bind_method(cls_instance, 'onLoseFocus', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}

		self.dragging = false;
		pyjamas.ui.Controls.DOM.releaseCapture(self.getElement());
		pyjamas.ui.Controls.VerticalDemoSlider.onLoseFocus(self, sender);
		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.onMouseDown = pyjs__bind_method(cls_instance, '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];
		}

		self.dragging = true;
		pyjamas.ui.Controls.DOM.setCapture(self.getElement());
		self.setFocus(true);
		pyjamas.ui.Controls.DOM.eventPreventDefault(pyjamas.ui.Controls.DOM.eventGetCurrentEvent());
		self.moveControl(x, y);
		return null;
	}
	, 1, [null,null,'self', 'sender', 'x', 'y']);
	cls_definition.onMouseUp = pyjs__bind_method(cls_instance, '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];
		}

		self.dragging = false;
		pyjamas.ui.Controls.DOM.releaseCapture(self.getElement());
		return null;
	}
	, 1, [null,null,'self', 'sender', 'x', 'y']);
	cls_definition.onMouseEnter = pyjs__bind_method(cls_instance, 'onMouseEnter', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}

 		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.onMouseLeave = pyjs__bind_method(cls_instance, 'onMouseLeave', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}

 		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.onKeyDown = pyjs__bind_method(cls_instance, 'onKeyDown', function(sender, keycode, modifiers) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
			keycode = arguments[2];
			modifiers = arguments[3];
		}
		var new_value;
		pyjamas.ui.Controls.log.writebr(pyjslib.sprintf(String('press %d %d'), new pyjslib.Tuple([keycode, modifiers])));
		if (pyjslib.bool(pyjslib.eq(keycode, pyjamas.ui.Controls.KeyboardListener.KEY_UP))) {
			new_value = self.processValue( ( self.value + self.step ) );
			self.setControlPos(new_value);
			self.setValue(new_value);
		}
		else if (pyjslib.bool(pyjslib.eq(keycode, pyjamas.ui.Controls.KeyboardListener.KEY_DOWN))) {
			new_value = self.processValue( ( self.value - self.step ) );
			self.setControlPos(new_value);
			self.setValue(new_value);
		}
		return null;
	}
	, 1, [null,null,'self', 'sender', 'keycode', 'modifiers']);
	cls_definition.onKeyUp = pyjs__bind_method(cls_instance, 'onKeyUp', function(sender, keycode, modifiers) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
			keycode = arguments[2];
			modifiers = arguments[3];
		}

 		return null;
	}
	, 1, [null,null,'self', 'sender', 'keycode', 'modifiers']);
	cls_definition.onKeyPress = pyjs__bind_method(cls_instance, 'onKeyPress', function(sender, keycode, modifiers) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
			keycode = arguments[2];
			modifiers = arguments[3];
		}

 		return null;
	}
	, 1, [null,null,'self', 'sender', 'keycode', 'modifiers']);
	return pyjs__class_function(cls_instance, cls_definition, 
	                            new Array(pyjamas.ui.Controls.FocusWidget));
})();
pyjamas.ui.Controls.VerticalDemoSlider = (function(){
	var cls_instance = pyjs__class_instance('VerticalDemoSlider');
	var cls_definition = new Object();
	cls_definition.__md5__ = 'dbd8c5107195d82481d04b610361977c';
	cls_definition.__init__ = pyjs__bind_method(cls_instance, '__init__', function(min_value, max_value, start_value, step) {
		if (this.__is_instance__ === true) {
			var self = this;
			var kwargs = arguments.length >= 5 ? arguments[arguments.length-1] : arguments[arguments.length];
			if (typeof kwargs != 'object' || kwargs.__is_instance__ !== true || kwargs.__name__ != 'Dict') {
				kwargs = arguments[arguments.length+1];
			}
		} else {
			var self = arguments[0];
			min_value = arguments[1];
			max_value = arguments[2];
			start_value = arguments[3];
			step = arguments[4];
			var kwargs = arguments.length >= 6 ? arguments[arguments.length-1] : arguments[arguments.length];
			if (typeof kwargs != 'object' || kwargs.__is_instance__ !== true || kwargs.__name__ != 'Dict') {
				kwargs = arguments[arguments.length+1];
			}
		}
		if (typeof kwargs == 'undefined') {
			kwargs = pyjslib.Dict({});
			if (typeof step != 'undefined') {
				if (pyjslib.get_pyjs_classtype(step) == 'Dict') {
					kwargs = step;
					step = arguments[5];
				}
			} else 			if (typeof start_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(start_value) == 'Dict') {
					kwargs = start_value;
					start_value = arguments[5];
				}
			} else 			if (typeof max_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(max_value) == 'Dict') {
					kwargs = max_value;
					max_value = arguments[5];
				}
			} else 			if (typeof min_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(min_value) == 'Dict') {
					kwargs = min_value;
					min_value = arguments[5];
				}
			} else 			if (typeof self != 'undefined') {
				if (pyjslib.get_pyjs_classtype(self) == 'Dict') {
					kwargs = self;
					self = arguments[5];
				}
			} else {
			}
		}
		if (typeof start_value == 'undefined') start_value=null;
		if (typeof step == 'undefined') step=null;
		var element;
		if (pyjslib.bool(!(kwargs.has_key(String('StyleName'))))) {
			kwargs.__setitem__(String('StyleName'), String('gwt-VerticalSlider'));
		}
		element = pyjamas.ui.Controls.DOM.createDiv();
		pyjamas.ui.Controls.DOM.setStyleAttribute(element, String('position'), String('relative'));
		pyjamas.ui.Controls.DOM.setStyleAttribute(element, String('overflow'), String('hidden'));
		self.handle = pyjamas.ui.Controls.DOM.createDiv();
		pyjamas.ui.Controls.DOM.appendChild(element, self.handle);
		pyjamas.ui.Controls.DOM.setStyleAttribute(self.handle, String('border'), String('1px'));
		pyjamas.ui.Controls.DOM.setStyleAttribute(self.handle, String('width'), String('100%'));
		pyjamas.ui.Controls.DOM.setStyleAttribute(self.handle, String('height'), String('10px'));
		pyjamas.ui.Controls.DOM.setStyleAttribute(self.handle, String('backgroundColor'), String('#808080'));
		pyjs_kwargs_call(pyjamas.ui.Controls.Control, '__init__', null, kwargs, [{}, self, element, min_value, max_value, start_value, step]);
		self.addClickListener(self);
		self.addFocusListener(self);
		return null;
	}
	, 1, [null,'kwargs','self', 'min_value', 'max_value', 'start_value', 'step']);
	cls_definition.onFocus = pyjs__bind_method(cls_instance, 'onFocus', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}

		self.addStyleName(String('gwt-VerticalSlider-focussed'));
		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.onLostFocus = pyjs__bind_method(cls_instance, 'onLostFocus', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}

		self.removeStyleName(String('gwt-VerticalSlider-focussed'));
		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.moveControl = pyjs__bind_method(cls_instance, 'moveControl', function(mouse_x, mouse_y) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			mouse_x = arguments[1];
			mouse_y = arguments[2];
		}
		var handle_height,val_diff,height_range,relative_y,widget_height,new_value;
		handle_height = pyjamas.ui.Controls.DOM.getIntAttribute(self.handle, String('offsetHeight'));
		widget_height = self.getOffsetHeight();
		height_range =  ( widget_height - 10 ) ;
		relative_y =  ( mouse_y -  ( handle_height / 2 )  ) ;
		if (pyjslib.bool((pyjslib.cmp(relative_y, 0) == -1))) {
			relative_y = 0;
		}
		if (pyjslib.bool((pyjslib.cmp(relative_y, height_range) != -1))) {
			relative_y = height_range;
		}
		relative_y =  ( height_range - relative_y ) ;
		val_diff =  ( self.max_value - self.min_value ) ;
		new_value =  (  (  ( val_diff * relative_y )  / height_range )  + self.min_value ) ;
		new_value = self.processValue(new_value);
		self.setControlPos(new_value);
		self.setValue(new_value);
		return null;
	}
	, 1, [null,null,'self', 'mouse_x', 'mouse_y']);
	cls_definition.setControlPos = pyjs__bind_method(cls_instance, 'setControlPos', function(value) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			value = arguments[1];
		}
		var val_diff,height_range,relative_y,widget_height;
		widget_height = self.getOffsetHeight();
		height_range =  ( widget_height - 10 ) ;
		val_diff =  ( self.max_value - self.min_value ) ;
		relative_y =  (  ( height_range *  ( value - self.min_value )  )  / val_diff ) ;
		if (pyjslib.bool((pyjslib.cmp(relative_y, 0) == -1))) {
			relative_y = 0;
		}
		if (pyjslib.bool((pyjslib.cmp(relative_y, height_range) != -1))) {
			relative_y = height_range;
		}
		relative_y =  ( height_range - relative_y ) ;
		pyjamas.ui.Controls.DOM.setStyleAttribute(self.handle, String('top'), pyjslib.sprintf(String('%dpx'), relative_y));
		pyjamas.ui.Controls.DOM.setStyleAttribute(self.handle, String('position'), String('absolute'));
		return null;
	}
	, 1, [null,null,'self', 'value']);
	return pyjs__class_function(cls_instance, cls_definition, 
	                            new Array(pyjamas.ui.Controls.Control));
})();
pyjamas.ui.Controls.VerticalDemoSlider2 = (function(){
	var cls_instance = pyjs__class_instance('VerticalDemoSlider2');
	var cls_definition = new Object();
	cls_definition.__md5__ = '73111e58f58fb83bfa19c25ddded1077';
	cls_definition.__init__ = pyjs__bind_method(cls_instance, '__init__', function(min_value, max_value, start_value) {
		if (this.__is_instance__ === true) {
			var self = this;
			var kwargs = arguments.length >= 4 ? arguments[arguments.length-1] : arguments[arguments.length];
			if (typeof kwargs != 'object' || kwargs.__is_instance__ !== true || kwargs.__name__ != 'Dict') {
				kwargs = arguments[arguments.length+1];
			}
		} else {
			var self = arguments[0];
			min_value = arguments[1];
			max_value = arguments[2];
			start_value = arguments[3];
			var kwargs = arguments.length >= 5 ? arguments[arguments.length-1] : arguments[arguments.length];
			if (typeof kwargs != 'object' || kwargs.__is_instance__ !== true || kwargs.__name__ != 'Dict') {
				kwargs = arguments[arguments.length+1];
			}
		}
		if (typeof kwargs == 'undefined') {
			kwargs = pyjslib.Dict({});
			if (typeof start_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(start_value) == 'Dict') {
					kwargs = start_value;
					start_value = arguments[4];
				}
			} else 			if (typeof max_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(max_value) == 'Dict') {
					kwargs = max_value;
					max_value = arguments[4];
				}
			} else 			if (typeof min_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(min_value) == 'Dict') {
					kwargs = min_value;
					min_value = arguments[4];
				}
			} else 			if (typeof self != 'undefined') {
				if (pyjslib.get_pyjs_classtype(self) == 'Dict') {
					kwargs = self;
					self = arguments[4];
				}
			} else {
			}
		}
		if (typeof start_value == 'undefined') start_value=null;

		pyjs_kwargs_call(pyjamas.ui.Controls.VerticalDemoSlider, '__init__', null, kwargs, [{}, self, min_value, max_value, start_value]);
		self.addMouseListener(self);
		self.addKeyboardListener(self);
		return null;
	}
	, 1, [null,'kwargs','self', 'min_value', 'max_value', 'start_value']);
	return pyjs__class_function(cls_instance, cls_definition, 
	                            new Array(pyjamas.ui.Controls.VerticalDemoSlider));
})();
pyjamas.ui.Controls.InputControl = (function(){
	var cls_instance = pyjs__class_instance('InputControl');
	var cls_definition = new Object();
	cls_definition.__md5__ = '0f85cb684d048f4a8f1a095fcd80f988';
	cls_definition.__init__ = pyjs__bind_method(cls_instance, '__init__', function(min_value, max_value, start_value, step) {
		if (this.__is_instance__ === true) {
			var self = this;
			var kwargs = arguments.length >= 5 ? arguments[arguments.length-1] : arguments[arguments.length];
			if (typeof kwargs != 'object' || kwargs.__is_instance__ !== true || kwargs.__name__ != 'Dict') {
				kwargs = arguments[arguments.length+1];
			}
		} else {
			var self = arguments[0];
			min_value = arguments[1];
			max_value = arguments[2];
			start_value = arguments[3];
			step = arguments[4];
			var kwargs = arguments.length >= 6 ? arguments[arguments.length-1] : arguments[arguments.length];
			if (typeof kwargs != 'object' || kwargs.__is_instance__ !== true || kwargs.__name__ != 'Dict') {
				kwargs = arguments[arguments.length+1];
			}
		}
		if (typeof kwargs == 'undefined') {
			kwargs = pyjslib.Dict({});
			if (typeof step != 'undefined') {
				if (pyjslib.get_pyjs_classtype(step) == 'Dict') {
					kwargs = step;
					step = arguments[5];
				}
			} else 			if (typeof start_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(start_value) == 'Dict') {
					kwargs = start_value;
					start_value = arguments[5];
				}
			} else 			if (typeof max_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(max_value) == 'Dict') {
					kwargs = max_value;
					max_value = arguments[5];
				}
			} else 			if (typeof min_value != 'undefined') {
				if (pyjslib.get_pyjs_classtype(min_value) == 'Dict') {
					kwargs = min_value;
					min_value = arguments[5];
				}
			} else 			if (typeof self != 'undefined') {
				if (pyjslib.get_pyjs_classtype(self) == 'Dict') {
					kwargs = self;
					self = arguments[5];
				}
			} else {
			}
		}
		if (typeof start_value == 'undefined') start_value=null;
		if (typeof step == 'undefined') step=null;
		var element;
		if (pyjslib.bool(!(kwargs.has_key(String('StyleName'))))) {
			kwargs.__setitem__(String('StyleName'), String('gwt-InputControl'));
		}
		self.input = pyjamas.ui.Controls.TextBox();
		self.input.addKeyboardListener(self);
		element = self.input.getElement();
		pyjs_kwargs_call(pyjamas.ui.Controls.Control, '__init__', null, kwargs, [{}, self, element, min_value, max_value, start_value, step]);
		self.addClickListener(self);
		self.addFocusListener(self);
		self.addKeyboardListener(self);
		return null;
	}
	, 1, [null,'kwargs','self', 'min_value', 'max_value', 'start_value', 'step']);
	cls_definition.onFocus = pyjs__bind_method(cls_instance, 'onFocus', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}

		self.addStyleName(String('gwt-InputControl-focussed'));
		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.onLostFocus = pyjs__bind_method(cls_instance, 'onLostFocus', function(sender) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
		}

		self.removeStyleName(String('gwt-InputControl-focussed'));
		return null;
	}
	, 1, [null,null,'self', 'sender']);
	cls_definition.setControlPos = pyjs__bind_method(cls_instance, 'setControlPos', function(value) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			value = arguments[1];
		}

		self.input.setText(value);
		return null;
	}
	, 1, [null,null,'self', 'value']);
	cls_definition.onKeyPress = pyjs__bind_method(cls_instance, 'onKeyPress', function(sender, keycode, modifiers) {
		if (this.__is_instance__ === true) {
			var self = this;
		} else {
			var self = arguments[0];
			sender = arguments[1];
			keycode = arguments[2];
			modifiers = arguments[3];
		}
		var new_value;
		if (pyjslib.bool(pyjslib.eq(keycode, pyjamas.ui.Controls.KeyboardListener.KEY_ENTER))) {
			new_value = pyjslib.float(self.input.getText());
			new_value = self.processValue(new_value);
			self.setControlPos(new_value);
			self.setValue(new_value);
		}
		else {
			pyjamas.ui.Controls.Control.onKeyPress(self, sender, keycode, modifiers);
		}
		return null;
	}
	, 1, [null,null,'self', 'sender', 'keycode', 'modifiers']);
	return pyjs__class_function(cls_instance, cls_definition, 
	                            new Array(pyjamas.ui.Controls.Control));
})();
return this;
}; /* end pyjamas.ui.Controls */
$pyjs.modules_hash['pyjamas.ui.Controls'] = $pyjs.loaded_modules['pyjamas.ui.Controls'];


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


/*
PYJS_DEPS: ['math', 'pyjamas.DOM', 'pyjamas', 'pyjamas.ui.FocusWidget.FocusWidget', 'pyjamas.ui', 'pyjamas.ui.FocusWidget', 'pyjamas.ui.MouseListener', 'pyjamas.ui.Event', 'pyjamas.ui.Focus', 'pyjamas.ui.KeyboardListener', 'pyjamas.ui.TextBox.TextBox', 'pyjamas.ui.TextBox', 'pyjamas.log']
*/
