]>
git.proxmox.com Git - extjs.git/blob - extjs/modern/modern/src/util/Wrapper.js
4 Ext
.define('Ext.util.Wrapper', {
5 mixins
: ['Ext.mixin.Hookable'],
7 constructor: function(elementConfig
, wrappedElement
) {
8 var element
= this.link('element', Ext
.Element
.create(elementConfig
));
11 element
.insertBefore(wrappedElement
);
12 this.wrap(wrappedElement
);
16 bindSize: function(sizeName
) {
17 var wrappedElement
= this.wrappedElement
,
20 this.boundSizeName
= sizeName
;
21 this.boundMethodName
= boundMethodName
= sizeName
=== 'width' ? 'setWidth' : 'setHeight';
23 this.bindHook(wrappedElement
, boundMethodName
, 'onBoundSizeChange');
24 wrappedElement
[boundMethodName
].call(
25 wrappedElement
, wrappedElement
.getStyleValue(sizeName
)
29 onBoundSizeChange: function(size
, args
) {
30 var element
= this.element
;
32 if (typeof size
=== 'string' && size
.substr(-1) === '%') {
39 element
[this.boundMethodName
].call(element
, size
);
42 wrap: function(wrappedElement
) {
43 var element
= this.element
,
46 this.wrappedElement
= wrappedElement
;
48 innerDom
= element
.dom
;
50 while (innerDom
.firstElementChild
!== null) {
51 innerDom
= innerDom
.firstElementChild
;
54 innerDom
.appendChild(wrappedElement
.dom
);
61 wrappedElement
= me
.wrappedElement
,
62 boundMethodName
= me
.boundMethodName
,
63 parentNode
= dom
.parentNode
,
66 if (boundMethodName
) {
67 me
.unbindHook(wrappedElement
, boundMethodName
, 'onBoundSizeChange');
68 size
= element
.getStyle(me
.boundSizeName
);
71 wrappedElement
[boundMethodName
].call(wrappedElement
, size
);
76 if (!wrappedElement
.destroyed
) {
77 parentNode
.replaceChild(dom
.firstElementChild
, dom
);
80 delete me
.wrappedElement
;