Side navigation
#2501 closed enhancement (fixed)
Opened March 13, 2008 03:16PM UTC
Closed March 17, 2008 06:07PM UTC
ui.slider - Refactoring suggestions
| Reported by: | joern | Owned by: | joern |
|---|---|---|---|
| Priority: | major | Milestone: | 1.2.4 |
| Component: | ui | Version: | 1.2.3 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
ui.slider currently contains quite a bit of duplicated code. A few suggestions for refactorings:
drag and moveTo contain a lot of the same code, eg. this is in both:
if(o.stepping) {
var value = this.convertValue(modifier);
value = Math.round(value / o.stepping) * o.stepping;
modifier = this.translateValue(value);
}
if(this.rangeElement) {
if(this.currentHandle[0] == this.handle[0] && modifier >= this.translateValue(this.value(1))) modifier = this.translateValue(this.value(1));
if(this.currentHandle[0] == this.handle[1] && modifier <= this.translateValue(this.value(0))) modifier = this.translateValue(this.value(0));
}
this.currentHandle.css(this.properties[0], modifier);
if(this.rangeElement) this.updateRange();
Should be extracted to a single method.
Both value() and handleSize() contain code to find a handle:
$(handle != undefined ? this.handle[handle] || handle : this.currentHandle)
That could be extracted as well.
createRange and updateRange contain the same code to update CSS. createRange could use updateRange to avoid the duplication.
Both could use a method that returns an object with the necessary CSS properties, passing the index as an argument, something like this:
cssproperties: function(index) {
var result = {};
result[this.properties[index]] = parseInt($(this.handle[index]).css(this.properties[index]),10) + this.handleSize(index)/2;
return result;
},
Could then be used like this:
.css(this.cssproperties(0)) .css(this.cssproperties(1))
Attachments (0)
Change History (3)
Changed March 14, 2008 02:53PM UTC by comment:1
| owner: | paul → braeker |
|---|
Changed March 17, 2008 05:34PM UTC by comment:2
| owner: | braeker → joern |
|---|
Changed March 17, 2008 06:07PM UTC by comment:3
| resolution: | → fixed |
|---|---|
| status: | new → closed |
Mostly implemented in [5065] and previous revisions.