Editor.js
2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/**
* Component layout for editors
* @private
*/
Ext.define('Ext.layout.container.Editor', {
/* Begin Definitions */
alias: 'layout.editor',
extend: 'Ext.layout.container.Container',
/* End Definitions */
autoSizeDefault: {
width: 'field',
height: 'field'
},
getItemSizePolicy: function (item) {
var me = this,
autoSize = me.owner.autoSize;
return me.sizePolicy || (me.sizePolicy = {
setsWidth: autoSize && autoSize.width === 'boundEl' ? 1 : 0,
setsHeight: autoSize && autoSize.height === 'boundEl' ? 1 : 0
});
},
calculate: function(ownerContext) {
var me = this,
owner = me.owner,
autoSize = owner.autoSize,
fieldWidth,
fieldHeight;
if (autoSize === true) {
autoSize = me.autoSizeDefault;
}
// Calculate size of both Editor, and its owned Field
if (autoSize) {
fieldWidth = me.getDimension(owner, autoSize.width, 'getWidth', owner.width);
fieldHeight = me.getDimension(owner, autoSize.height, 'getHeight', owner.height);
}
// Set Field size
ownerContext.childItems[0].setSize(fieldWidth, fieldHeight);
// Bypass validity checking. Container layouts should not usually set their owner's size.
ownerContext.setWidth(fieldWidth);
ownerContext.setHeight(fieldHeight);
// This is a Container layout, so publish content size
ownerContext.setContentSize(fieldWidth || owner.field.getWidth(),
fieldHeight || owner.field.getHeight());
},
getDimension: function(owner, type, getMethod, ownerSize){
switch (type) {
// Size to boundEl's dimension
case 'boundEl':
return owner.boundEl[getMethod]();
// Auto size (shrink wrap the Field's size
case 'field':
return undefined;
// Size to the Editor's configured size
default:
return ownerSize;
}
}
});