
function pan_tool_widget(htmlId,serverId){this.select=function(e){if(me.toolManager){me.toolManager.selectTool(me);}
me.targetWidget.attachEvent('mousedown',me.mouseDown);me.targetWidget.setCursor("move");cancelBubble(e);return true;}
this.unselect=function(){me.targetWidget.detachEvent('mousedown',me.mouseDown);}
this.superclass=Tool_Widget;this.superclass(htmlId,serverId);this.addTargetWidget=function(widget){this.targetWidget=widget;this.drag=new Drag(this.targetWidget.containerObj);}
var me=this;this.mouseDown=function(e){cancelBubble(e);me.drag.mouseDown(e);addEvent(document,"mousemove",me.mouseMove,false);addEvent(document,"mouseup",me.mouseUp,false);}
this.mouseMove=function(e){cancelBubble(e);me.drag.mouseMove(e);var deltaX=me.drag.lastX-me.drag.firstX;var deltaY=me.drag.lastY-me.drag.firstY;moveObj(me.targetWidget.htmlObj,deltaX,deltaY);}
this.mouseUp=function(e){cancelBubble(e);me.drag.mouseUp(e);removeEvent(document,"mousemove",me.mouseMove,false);removeEvent(document,"mouseup",me.mouseUp,false);RequestResponseBroker.makeImmediateMethodCall(me.serverId,'pan',Array(Array(me.drag.firstX,me.drag.firstY,me.drag.lastX,me.drag.lastY)));return true;}}