19
19
( function ( $ , undefined ) {
20
20
21
21
var uiDialogClasses =
22
- 'ui-dialog ' +
23
- 'ui-widget ' +
24
- 'ui-widget-content ' +
25
- 'ui-corner-all ' ;
22
+ 'ui-dialog ' +
23
+ 'ui-widget ' +
24
+ 'ui-widget-content ' +
25
+ 'ui-corner-all ' ,
26
+ sizeRelatedOptions = {
27
+ buttons : true ,
28
+ height : true ,
29
+ maxHeight : true ,
30
+ maxWidth : true ,
31
+ minHeight : true ,
32
+ minWidth : true ,
33
+ width : true
34
+ } ,
35
+ resizableRelatedOptions = {
36
+ maxHeight : true ,
37
+ maxWidth : true ,
38
+ minHeight : true ,
39
+ minWidth : true
40
+ } ;
26
41
27
42
$ . widget ( "ui.dialog" , {
28
43
options : {
@@ -518,13 +533,34 @@ $.widget("ui.dialog", {
518
533
}
519
534
} ,
520
535
521
- _setOption : function ( key , value ) {
536
+ _setOptions : function ( options ) {
522
537
var self = this ,
523
- uiDialog = self . uiDialog ,
524
- isDraggable = uiDialog . is ( ":data(draggable)" ) ,
525
- isResizable = uiDialog . is ( ":data(resizable)" ) ,
538
+ resizableOptions = { } ,
526
539
resize = false ;
527
540
541
+ $ . each ( options , function ( key , value ) {
542
+ self . _setOption ( key , value ) ;
543
+
544
+ if ( key in sizeRelatedOptions ) {
545
+ resize = true ;
546
+ }
547
+ if ( key in resizableRelatedOptions ) {
548
+ resizableOptions [ key ] = value ;
549
+ }
550
+ } ) ;
551
+
552
+ if ( resize ) {
553
+ this . _size ( ) ;
554
+ }
555
+ if ( this . uiDialog . is ( ":data(resizable)" ) ) {
556
+ this . uiDialog . resizable ( "option" , resizableOptions ) ;
557
+ }
558
+ } ,
559
+
560
+ _setOption : function ( key , value ) {
561
+ var self = this ,
562
+ uiDialog = self . uiDialog ;
563
+
528
564
switch ( key ) {
529
565
//handling of deprecated beforeclose (vs beforeClose) option
530
566
//Ticket #4669 http://dev.jqueryui.com/ticket/4669
@@ -534,10 +570,9 @@ $.widget("ui.dialog", {
534
570
break ;
535
571
case "buttons" :
536
572
self . _createButtons ( value ) ;
537
- resize = true ;
538
573
break ;
539
574
case "closeText" :
540
- // convert whatever was passed in to a string, for text() to not throw up
575
+ // ensure that we always pass a string
541
576
self . uiDialogTitlebarCloseText . text ( "" + value ) ;
542
577
break ;
543
578
case "dialogClass" :
@@ -553,6 +588,7 @@ $.widget("ui.dialog", {
553
588
}
554
589
break ;
555
590
case "draggable" :
591
+ var isDraggable = uiDialog . is ( ":data(draggable)" )
556
592
if ( isDraggable && ! value ) {
557
593
uiDialog . draggable ( "destroy" ) ;
558
594
}
@@ -561,38 +597,12 @@ $.widget("ui.dialog", {
561
597
self . _makeDraggable ( ) ;
562
598
}
563
599
break ;
564
- case "height" :
565
- resize = true ;
566
- break ;
567
- case "maxHeight" :
568
- if ( isResizable ) {
569
- uiDialog . resizable ( 'option' , 'maxHeight' , value ) ;
570
- }
571
- resize = true ;
572
- break ;
573
- case "maxWidth" :
574
- if ( isResizable ) {
575
- uiDialog . resizable ( 'option' , 'maxWidth' , value ) ;
576
- }
577
- resize = true ;
578
- break ;
579
- case "minHeight" :
580
- if ( isResizable ) {
581
- uiDialog . resizable ( 'option' , 'minHeight' , value ) ;
582
- }
583
- resize = true ;
584
- break ;
585
- case "minWidth" :
586
- if ( isResizable ) {
587
- uiDialog . resizable ( 'option' , 'minWidth' , value ) ;
588
- }
589
- resize = true ;
590
- break ;
591
600
case "position" :
592
601
self . _position ( value ) ;
593
602
break ;
594
603
case "resizable" :
595
604
// currently resizable, becoming non-resizable
605
+ var isResizable = uiDialog . is ( ":data(resizable)" )
596
606
if ( isResizable && ! value ) {
597
607
uiDialog . resizable ( 'destroy' ) ;
598
608
}
@@ -611,15 +621,9 @@ $.widget("ui.dialog", {
611
621
// convert whatever was passed in o a string, for html() to not throw up
612
622
$ ( ".ui-dialog-title" , self . uiDialogTitlebar ) . html ( "" + ( value || ' ' ) ) ;
613
623
break ;
614
- case "width" :
615
- resize = true ;
616
- break ;
617
624
}
618
625
619
626
$ . Widget . prototype . _setOption . apply ( self , arguments ) ;
620
- if ( resize ) {
621
- self . _size ( ) ;
622
- }
623
627
} ,
624
628
625
629
_size : function ( ) {
0 commit comments