/**
* @ojcomponent oj.ojStatusMeterGauge
* @augments oj.dvtBaseGauge
* @since 0.7
*
* @classdesc
* <h3 id="statusMeterGaugeOverview-section">
* JET Status Meter Gauge Component
* <a class="bookmarkable-link" title="Bookmarkable Link" href="#statusMeterGaugeOverview-section"></a>
* </h3>
*
* <p>Status meter gauge component for JET, supporting horizontal and circular status meters.</p>
*
* {@ojinclude "name":"warning"}
*
* <pre class="prettyprint">
* <code>
* <div data-bind="ojComponent: {
* component: 'ojStatusMeterGauge',
* value: 63, min: 0, max: 100,
* thresholds: [{max: 33}, {max: 67}, {}]
* }"/>
* </code>
* </pre>
*
* {@ojinclude "name":"a11yKeyboard"}
*
* <h3 id="touch-section">
* Touch End User Information
* <a class="bookmarkable-link" title="Bookmarkable Link" href="#touch-section"></a>
* </h3>
*
* {@ojinclude "name":"touchDoc"}
*
* <h3 id="keyboard-section">
* Keyboard End User Information
* <a class="bookmarkable-link" title="Bookmarkable Link" href="#keyboard-section"></a>
* </h3>
*
* {@ojinclude "name":"keyboardDoc"}
*
* {@ojinclude "name":"rtl"}
*
* @desc Creates a JET Status Meter Gauge.
* @example <caption>Initialize the Status Meter Gauge with no options specified:</caption>
* $(".selector").ojStatusMeterGauge();
*
* @example <caption>Initialize the Status Meter Gauge with some options:</caption>
* $(".selector").ojStatusMeterGauge({value: 63, min: 0, max: 100, thresholds: [{max: 33}, {max: 67}, {}]});
*
* @example <caption>Initialize the Status Meter Gauge via the JET <code class="prettyprint">ojComponent</code> binding:</caption>
* <div data-bind="ojComponent: {component: 'ojStatusMeterGauge'}">
*/
oj.__registerWidget('oj.ojStatusMeterGauge', $['oj']['dvtBaseGauge'],
{
widgetEventPrefix : "oj",
options: {
/**
* Triggered during a value change gesture on mouse or touch move.
*
* @property {Object} ui event payload
* @property {number} ui.value the value of the gauge
*
* @example <caption>Initialize the component with the <code class="prettyprint">input</code> callback specified:</caption>
* $(".selector").ojStatusMeterGauge({
* "input": function(event, ui){}
* });
*
* @example <caption>Bind an event listener to the <code class="prettyprint">ojinput</code> event:</caption>
* $(".selector").on("ojinput", function(event, ui){});
*
* @expose
* @event
* @memberof oj.ojStatusMeterGauge
* @instance
*/
input : null,
/**
* Fired whenever a supported component option changes, whether due to user interaction or programmatic
* intervention. If the new value is the same as the previous value, no event will be fired.
*
* @property {Object} data event payload
* @property {string} data.option the name of the option that changed, i.e. "value"
* @property {Object} data.previousValue an Object holding the previous value of the option
* @property {Object} data.value an Object holding the current value of the option
* @property {Object} ui.optionMetadata information about the option that is changing
* @property {string} ui.optionMetadata.writeback <code class="prettyprint">"shouldWrite"</code> or
* <code class="prettyprint">"shouldNotWrite"</code>. For use by the JET writeback mechanism.
*
* @example <caption>Initialize the component with the <code class="prettyprint">optionChange</code> callback:</caption>
* $(".selector").ojStatusMeterGauge({
* 'optionChange': function (event, data) {}
* });
*
* @example <caption>Bind an event listener to the <code class="prettyprint">ojoptionchange</code> event:</caption>
* $(".selector").on({
* 'ojoptionchange': function (event, data) {
* window.console.log("option changing is: " + data['option']);
* };
* });
*
* @expose
* @event
* @memberof oj.ojStatusMeterGauge
* @instance
*/
optionChange: null
},
//** @inheritdoc */
_CreateDvtComponent : function(context, callback, callbackObj) {
return dvt.DvtStatusMeterGauge.newInstance(context, callback, callbackObj);
},
//** @inheritdoc */
_ConvertSubIdToLocator : function(subId) {
var locator = {};
if(subId == 'tooltip') {
locator['subId'] = 'oj-statusmetergauge-tooltip';
}
return locator;
},
//** @inheritdoc */
_GetComponentStyleClasses : function() {
var styleClasses = this._super();
styleClasses.push('oj-statusmetergauge');
return styleClasses;
},
//** @inheritdoc */
_Render : function() {
// Display the title of the surrounding div as the tooltip. Remove title from div to avoid browser default tooltip.
if(this.element.attr('title'))
{
this.options['shortDesc'] = this.element.attr('title');
this.element.data( this.element,'title', this.element.attr('title'));
this.element.removeAttr('title');
}
else if (this.element.data('title'))
this.options['shortDesc'] = this.element.data('title');
// Call the super to render
this._super();
},
/**
* Returns the gauge's metric label.
* @return {Object} The metric label object
* @expose
* @instance
* @memberof oj.ojStatusMeterGauge
*/
getMetricLabel: function() {
var auto = this._component.getAutomation();
return auto.getMetricLabel();
}
});
Source: src/main/javascript/oracle/oj/ojgauge/ojstatusmetergauge.js
Oracle® JavaScript Extension Toolkit (JET)
1.1.2
E65298-01