//>>built define("dojox/geo/openlayers/WidgetFeature",["dojo/_base/kernel","dojo/_base/declare","dojo/_base/html","dojo/_base/lang","dojox/geo/openlayers/Feature"],function(_1,_2,_3,_4,_5){ return _2("dojox.geo.openlayers.WidgetFeature",_5,{_widget:null,_bbox:null,constructor:function(_6){ this._params=_6; },setParameters:function(_7){ this._params=_7; },getParameters:function(){ return this._params; },_getWidget:function(){ var _8=this._params; if((this._widget==null)&&(_8!=null)){ var w=null; if(typeof (_8.createWidget)=="function"){ w=_8.createWidget.call(this); }else{ if(_8.dojoType){ _1["require"](_8.dojoType); var c=_4.getObject(_8.dojoType); w=new c(_8); }else{ if(_8.dijitId){ w=dijit.byId(_8.dijitId); }else{ if(_8.widget){ w=_8.widget; } } } } if(w!=null){ this._widget=w; if(typeof (w.startup)=="function"){ w.startup(); } var n=w.domNode; if(n!=null){ _3.style(n,{position:"absolute"}); } } this._widget=w; } return this._widget; },_getWidgetWidth:function(){ var p=this._params; if(p.width){ return p.width; } var w=this._getWidget(); if(w){ return _3.style(w.domNode,"width"); } return 10; },_getWidgetHeight:function(){ var p=this._params; if(p.height){ return p.height; } var w=this._getWidget(); if(w){ return _3.style(w.domNode,"height"); } return 10; },render:function(){ var _9=this.getLayer(); var _a=this._getWidget(); if(_a==null){ return; } var _b=this._params; var _c=_b.longitude; var _d=_b.latitude; var _e=this.getCoordinateSystem(); var _f=_9.getDojoMap(); var p=_f.transformXY(_c,_d,_e); var a=this._getLocalXY(p); var _10=this._getWidgetWidth(); var _11=this._getWidgetHeight(); var x=a[0]-_10/2; var y=a[1]-_11/2; var dom=_a.domNode; var pa=_9.olLayer.div; if(dom.parentNode!=pa){ if(dom.parentNode){ dom.parentNode.removeChild(dom); } pa.appendChild(dom); } this._updateWidgetPosition({x:x,y:y,width:_10,height:_11}); },_updateWidgetPosition:function(box){ var w=this._widget; var dom=w.domNode; _3.style(dom,{position:"absolute",left:box.x+"px",top:box.y+"px",width:box.width+"px",height:box.height+"px"}); if(w.srcNodeRef){ _3.style(w.srcNodeRef,{position:"absolute",left:box.x+"px",top:box.y+"px",width:box.width+"px",height:box.height+"px"}); } if(_4.isFunction(w.resize)){ w.resize({w:box.width,h:box.height}); } },remove:function(){ var w=this.getWidget(); if(!w){ return; } var dom=w.domNode; if(dom.parentNode){ dom.parentNode.removeChild(dom); } }}); });