]> git.proxmox.com Git - extjs.git/blame - extjs/classic/classic/src/layout/container/Editor.js
add extjs 6.0.1 sources
[extjs.git] / extjs / classic / classic / src / layout / container / Editor.js
CommitLineData
6527f429
DM
1/**\r
2 * Component layout for editors\r
3 * @private\r
4 */\r
5Ext.define('Ext.layout.container.Editor', {\r
6\r
7 /* Begin Definitions */\r
8\r
9 alias: 'layout.editor',\r
10\r
11 extend: 'Ext.layout.container.Container',\r
12\r
13 /* End Definitions */\r
14\r
15 autoSizeDefault: {\r
16 width: 'field',\r
17 height: 'field' \r
18 },\r
19\r
20 sizePolicies: {\r
21 // indexed by autoSize.width\r
22 $: {\r
23 // indexed by autoSize.height\r
24 $: {\r
25 readsWidth: 1,\r
26 readsHeight: 1,\r
27 setsWidth: 0,\r
28 setsHeight: 0\r
29 },\r
30 boundEl: {\r
31 readsWidth: 1,\r
32 readsHeight: 0,\r
33 setsWidth: 0,\r
34 setsHeight: 1\r
35 }\r
36 },\r
37\r
38 boundEl: {\r
39 // indexed by autoSize.height\r
40 $: {\r
41 readsWidth: 0,\r
42 readsHeight: 1,\r
43 setsWidth: 1,\r
44 setsHeight: 0\r
45 },\r
46 boundEl: {\r
47 readsWidth: 0,\r
48 readsHeight: 0,\r
49 setsWidth: 1,\r
50 setsHeight: 1\r
51 }\r
52 }\r
53 },\r
54\r
55 getItemSizePolicy: function (item) {\r
56 var me = this,\r
57 autoSize = me.owner.autoSize,\r
58 key = autoSize && autoSize.width,\r
59 policy = me.sizePolicies;\r
60\r
61 policy = policy[key] || policy.$;\r
62\r
63 key = autoSize && autoSize.height;\r
64 policy = policy[key] || policy.$;\r
65\r
66 return policy;\r
67 },\r
68\r
69 calculate: function(ownerContext) {\r
70 var me = this,\r
71 owner = me.owner,\r
72 autoSize = owner.autoSize,\r
73 fieldWidth,\r
74 fieldHeight;\r
75 \r
76 if (autoSize === true) {\r
77 autoSize = me.autoSizeDefault;\r
78 }\r
79\r
80 // Calculate size of both Editor, and its owned Field\r
81 if (autoSize) {\r
82 fieldWidth = me.getDimension(owner, autoSize.width, 'getWidth', owner.width);\r
83 fieldHeight = me.getDimension(owner, autoSize.height, 'getHeight', owner.height);\r
84 }\r
85\r
86 // Set Field size\r
87 ownerContext.childItems[0].setSize(fieldWidth, fieldHeight);\r
88\r
89 // Bypass validity checking. Container layouts should not usually set their owner's size.\r
90 ownerContext.setWidth(fieldWidth);\r
91 ownerContext.setHeight(fieldHeight);\r
92\r
93 // This is a Container layout, so publish content size\r
94 ownerContext.setContentSize(fieldWidth || owner.field.getWidth(),\r
95 fieldHeight || owner.field.getHeight());\r
96 },\r
97\r
98 getDimension: function(owner, type, getMethod, ownerSize){\r
99 switch (type) {\r
100 // Size to boundEl's dimension\r
101 case 'boundEl':\r
102 return owner.boundEl[getMethod]();\r
103\r
104 // Auto size (shrink wrap the Field's size\r
105 case 'field':\r
106 return undefined;\r
107\r
108 // Size to the Editor's configured size\r
109 default:\r
110 return ownerSize;\r
111 }\r
112 }\r
113});