]>
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(wrappedElement
, wrappedElement
.getStyleValue(sizeName
));
27 onBoundSizeChange: function(size
, args
) {
28 var element
= this.element
;
30 if (typeof size
=== 'string' && size
.substr(-1) === '%') {
37 element
[this.boundMethodName
].call(element
, size
);
40 wrap: function(wrappedElement
) {
41 var element
= this.element
,
44 this.wrappedElement
= wrappedElement
;
46 innerDom
= element
.dom
;
48 while (innerDom
.firstElementChild
!== null) {
49 innerDom
= innerDom
.firstElementChild
;
52 innerDom
.appendChild(wrappedElement
.dom
);
59 wrappedElement
= me
.wrappedElement
,
60 boundMethodName
= me
.boundMethodName
,
61 parentNode
= dom
.parentNode
,
64 if (boundMethodName
) {
65 me
.unbindHook(wrappedElement
, boundMethodName
, 'onBoundSizeChange');
66 size
= element
.getStyle(me
.boundSizeName
);
69 wrappedElement
[boundMethodName
].call(wrappedElement
, size
);
74 if (!wrappedElement
.destroyed
) {
75 parentNode
.replaceChild(dom
.firstElementChild
, dom
);
77 delete me
.wrappedElement
;