DIR : /home/kozerus/public_html/pn/uize/site-source/js/Uize/Widget/Options/FilterGroup.js
/home/kozerus/public_html/pn/uize/site-source/js/Uize/Widget/Options
/*______________
| ______ | U I Z E J A V A S C R I P T F R A M E W O R K
| / / | ---------------------------------------------------
| / O / | MODULE : Uize.Widget.Options.FilterGroup Class
| / / / |
| / / / /| | ONLINE : http://www.uize.com
| /____/ /__/_| | COPYRIGHT : (c)2010-2016 UIZE
| /___ | LICENSE : Available under MIT License or GNU General Public License
|_______________| http://www.uize.com/license.html
*/
/* Module Meta Data
type: Class
importance: 7
codeCompleteness: 50
docCompleteness: 0
*/
/*?
Introduction
The =Uize.Widget.Options.FilterGroup= widget provides the functionality for a filter group widget...
*DEVELOPERS:* `Ben Ilegbodu`, original code contributed by `Zazzle Inc.`
*/
Uize.module ({
name:'Uize.Widget.Options.FilterGroup',
required:[
'Uize.Widget.Button.Filter',
'Uize.Dom.Classes'
],
builder:function (_superclass) {
'use strict';
var
/*** Variables for Scruncher Optimization ***/
_true = true,
_false = false,
_Uize_Dom_Classes = Uize.Dom.Classes
;
/*** Private Instance Methods ***/
function _updateUiExpanded (m) {
m.isWired
&& _Uize_Dom_Classes.setState(
m.getNode('options'),
['', m._expandedCssClass],
m._expanded
)
;
}
function _updateUiFilterVisibility (m) {
var _allZero = _true;
m.isWired
&& m.forAll(
function (_filterWidget) {
var
_filterCount = _filterWidget.get('count'),
_displayFilter = !m._hideWhenZero
|| _filterCount
;
_filterWidget.displayNode('', _displayFilter);
_filterWidget.set({enabled:!_filterCount ? _false : 'inherit'});
if (_displayFilter)
_allZero = _false;
}
)
;
m.displayNode(
'',
m.getInherited('allowMultiple') === _false
|| (!_allZero && m.get('values').length > 1)
);
}
function _updateUiTitle (m) { m.isWired && m.setNodeInnerHtml('title', m._title) }
return _superclass.subclass ({
instanceMethods:{
updateCounts:function (_counts) {
var
m = this,
_countsLength = _counts.length
;
if (m.isWired) {
// NOTE: the count parameter for each filter in the values set
// will be out of sync...
_counts
&& _countsLength
&& m.forAll(
function (_filterWidget, _filterNo) {
_filterNo < _countsLength
&& _filterWidget.set({count:_counts[_filterNo]});
}
)
;
_updateUiFilterVisibility(m);
}
},
updateUi:function () {
var m = this;
if (m.isWired) {
_updateUiTitle(m);
_updateUiExpanded(m);
_updateUiFilterVisibility(m);
_superclass.doMy (m,'updateUi');
}
}
},
stateProperties:{
_expanded:{
name:'expanded',
onChange:function () {_updateUiExpanded (this)},
value:_false
},
_expandedCssClass:{
name:'expandedCssClass',
onChange:function () {_updateUiExpanded (this)},
value:''
},
_hideWhenZero:{
name:'hideWhenZero',
onChange:function () {_updateUiFilterVisibility (this)},
value:_true
},
_title:{
name:'title',
onChange:function () {_updateUiTitle (this)},
value:''
}
},
set:{
optionWidgetClass:Uize.Widget.Button.Filter
}
});
}
});
//
koh5_pano
Drag mouse to navigate.
Navigation
- Left/Right Mouse drag: Changes camera heading.
- Up/Sown Mouse drag: Changes camera pitch.
- Scroll wheel: Changes camera field of view.
- I-Key: Displays Info panel with canvas size, image size and FPS.
17.Aug.2010, Martin Wengenmayer