48 lines
1,010 B
JavaScript
48 lines
1,010 B
JavaScript
|
dojo.provide("dojox.charting.Element");
|
||
|
|
||
|
dojo.declare("dojox.charting.Element", null, {
|
||
|
constructor: function(chart){
|
||
|
this.chart = chart;
|
||
|
this.group = null;
|
||
|
this.htmlElements = [];
|
||
|
this.dirty = true;
|
||
|
},
|
||
|
createGroup: function(creator){
|
||
|
if(!creator){ creator = this.chart.surface; }
|
||
|
if(!this.group){
|
||
|
this.group = creator.createGroup();
|
||
|
}
|
||
|
return this;
|
||
|
},
|
||
|
purgeGroup: function(){
|
||
|
this.destroyHtmlElements();
|
||
|
if(this.group){
|
||
|
this.group.clear();
|
||
|
this.group.removeShape();
|
||
|
this.group = null;
|
||
|
}
|
||
|
this.dirty = true;
|
||
|
return this;
|
||
|
},
|
||
|
cleanGroup: function(creator){
|
||
|
this.destroyHtmlElements();
|
||
|
if(!creator){ creator = this.chart.surface; }
|
||
|
if(this.group){
|
||
|
this.group.clear();
|
||
|
}else{
|
||
|
this.group = creator.createGroup();
|
||
|
}
|
||
|
this.dirty = true;
|
||
|
return this;
|
||
|
},
|
||
|
destroyHtmlElements: function(){
|
||
|
if(this.htmlElements.length){
|
||
|
dojo.forEach(this.htmlElements, dojo.destroy);
|
||
|
this.htmlElements = [];
|
||
|
}
|
||
|
},
|
||
|
destroy: function(){
|
||
|
this.purgeGroup();
|
||
|
}
|
||
|
});
|