In this example we take the markup we used in A Custom Slider and turn it into a custom control.
At the same time, we've added a label to the slider control.
The result is a custom-looking reusable slider control that supports a label, css, behavior and databinding, all within markup!
First we define a subclass control which extends Slider:
<j:module targetNamespace="urn:example">
<j:control name="MySlider" base="j:Slider">
<j:defaults>
<div class="MySlider_div">
... rest of myslider markup in here
</div>
<j:defaults>
</j:control>
</j:module>
This markup "subclasses" the system slider class - it extends the system slider's behavior but adds a different appearance. The new Slider control has all the same properties and behavior as the system Slider, but with a different look.
To add the label we defined a style rule for the label:
.MySlider_label {
position:relative;
left: 30px;
top:0px;
font-family: arial;
color: white;
}
and then put a Label control inside the slider:
<div class="MySlider_div">
...
<j:Label class="MySlider_label" text="#param(text)"/>
...
</div>
That's it. Now we have a custom data-bindable reusable slider control, which we instantiate using:
<ex:MySlider minimum="1" maximum="10" step="1" text="rating"/>
<ex:MySlider minimum="1" maximum="10" step="1" text="appeal"/>