@ -2,28 +2,33 @@ BI.TextValueComboPopup = BI.inherit(BI.Pane, {
_defaultConfig : function ( ) {
return BI . extend ( BI . TextValueComboPopup . superclass . _defaultConfig . apply ( this , arguments ) , {
baseCls : "bi-text-icon-popup" ,
chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE
chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE ,
allowSelectAll : true ,
} ) ;
} ,
render ( ) {
render ( ) {
var o = this . options , self = this ;
if ( o . chooseType !== BI . ButtonGroup . CHOOSE _TYPE _MULTI ) {
return {
type : "bi.vertical" ,
vgap : 5 ,
items : [ {
items : [
{
type : "bi.button_group" ,
ref : ( _ref ) => {
this . popup = _ref ;
} ,
items : this . _formatItems ( o . items ) ,
chooseType : o . chooseType ,
layouts : [ {
layouts : [
{
type : "bi.vertical"
} ] ,
}
] ,
value : o . value ,
listeners : [ {
listeners : [
{
eventName : BI . Controller . EVENT _CHANGE ,
action : function ( type , val , obj ) {
self . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) ;
@ -31,15 +36,19 @@ BI.TextValueComboPopup = BI.inherit(BI.Pane, {
self . fireEvent ( BI . TextValueComboPopup . EVENT _CHANGE , val , obj ) ;
}
}
} ]
} ]
}
]
}
]
} ;
}
return {
type : "bi.vertical" ,
verticalAlign : BI . VerticalAlign . Stretch ,
rowSize : [ "fill" , "" ] ,
items : [ {
items : [
{
el : o . allowSelectAll ? {
type : "bi.select_list" ,
logic : {
dynamic : true ,
@ -52,7 +61,7 @@ BI.TextValueComboPopup = BI.inherit(BI.Pane, {
} ,
el : {
el : {
chooseType : o . chooseType
chooseType : o . chooseType ,
}
} ,
items : this . _formatItems ( o . items ) ,
@ -60,17 +69,46 @@ BI.TextValueComboPopup = BI.inherit(BI.Pane, {
type : BI . ButtonGroup . CHOOSE _TYPE _MULTI ,
value : o . value
} ,
listeners : [ {
listeners : [
{
eventName : BI . SelectList . EVENT _CHANGE ,
action : function ( val ) {
self . fireEvent ( BI . TextValueComboPopup . EVENT _CHANGE , val ) ;
}
} ]
} , {
}
]
} : {
type : "bi.list_pane" ,
logic : {
dynamic : true ,
innerVgap : 5 ,
rowSize : [ "" , "fill" ] ,
verticalAlign : BI . VerticalAlign . Stretch
} ,
ref : ( _ref ) => {
this . popup = _ref ;
} ,
el : {
chooseType : o . chooseType ,
} ,
items : this . _formatItems ( o . items ) ,
value : o . value ,
listeners : [
{
eventName : BI . ListPane . EVENT _CHANGE ,
action : function ( val ) {
self . fireEvent ( BI . TextValueComboPopup . EVENT _CHANGE , val ) ;
}
}
]
}
} ,
{
type : "bi.center" ,
cls : "list-view-toolbar bi-high-light bi-split-top" ,
height : 24 ,
items : BI . createItems ( [ {
items : BI . createItems ( [
{
type : "bi.text_button" ,
text : BI . i18nText ( "BI-Basic_Clears" ) ,
handler : function ( ) {
@ -82,12 +120,14 @@ BI.TextValueComboPopup = BI.inherit(BI.Pane, {
handler : function ( ) {
self . fireEvent ( BI . TextValueComboPopup . EVENT _CONFIRM ) ;
}
} ] , {
}
] , {
once : false ,
shadow : true ,
isShadowShowingOnSelected : true
} )
} ]
}
]
} ;
} ,
@ -117,6 +157,9 @@ BI.TextValueComboPopup = BI.inherit(BI.Pane, {
return this . popup . getValue ( ) ;
}
var val = this . popup . getValue ( ) ;
if ( ! this . options . allowSelectAll ) {
return val ;
}
if ( val . type === BI . ButtonGroup . CHOOSE _TYPE _MULTI ) {
return val . value ;
} else {
@ -128,6 +171,10 @@ BI.TextValueComboPopup = BI.inherit(BI.Pane, {
if ( this . options . chooseType !== BI . ButtonGroup . CHOOSE _TYPE _MULTI ) {
return this . popup . setValue ( v ) ;
}
if ( ! this . options . allowSelectAll ) {
this . popup . setValue ( v ) ;
return ;
}
this . popup . setValue ( {
type : BI . ButtonGroup . CHOOSE _TYPE _MULTI ,
value : v