HeaderContainer.html
3.82 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>The source code</title>
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
<style type="text/css">
.highlight { display: block; background-color: #ddd; }
</style>
<script type="text/javascript">
function highlight() {
document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
}
</script>
</head>
<body onload="prettyPrint(); highlight();">
<pre class="prettyprint lang-js"><span id='Ext-grid-property-HeaderContainer'>/**
</span> * A custom HeaderContainer for the {@link Ext.grid.property.Grid}.
* Generally it should not need to be used directly.
*/
Ext.define('Ext.grid.property.HeaderContainer', {
extend: 'Ext.grid.header.Container',
alternateClassName: 'Ext.grid.PropertyColumnModel',
nameWidth: 115,
// private - strings used for locale support
//<locale>
nameText : 'Name',
//</locale>
//<locale>
valueText : 'Value',
//</locale>
//<locale>
dateFormat : 'm/j/Y',
//</locale>
//<locale>
trueText: 'true',
//</locale>
//<locale>
falseText: 'false',
//</locale>
// private
nameColumnCls: Ext.baseCSSPrefix + 'grid-property-name',
<span id='Ext-grid-property-HeaderContainer-method-constructor'> /**
</span> * Creates new HeaderContainer.
* @param {Ext.grid.property.Grid} grid The grid this store will be bound to
* @param {Object} source The source data config object
*/
constructor : function(grid, store) {
var me = this;
me.grid = grid;
me.store = store;
me.callParent([{
items: [{
header: me.nameText,
width: grid.nameColumnWidth || me.nameWidth,
sortable: grid.sortableColumns,
dataIndex: grid.nameField,
renderer: Ext.Function.bind(me.renderProp, me),
itemId: grid.nameField,
menuDisabled :true,
tdCls: me.nameColumnCls
}, {
header: me.valueText,
renderer: Ext.Function.bind(me.renderCell, me),
getEditor: Ext.Function.bind(me.getCellEditor, me),
sortable: grid.sortableColumns,
flex: 1,
fixed: true,
dataIndex: grid.valueField,
itemId: grid.valueField,
menuDisabled: true
}]
}]);
},
getCellEditor: function(record){
return this.grid.getCellEditor(record, this);
},
// private
// Render a property name cell
renderProp : function(v) {
return this.getPropertyName(v);
},
// private
// Render a property value cell
renderCell : function(val, meta, rec) {
var me = this,
renderer = me.grid.customRenderers[rec.get(me.grid.nameField)],
result = val;
if (renderer) {
return renderer.apply(me, arguments);
}
if (Ext.isDate(val)) {
result = me.renderDate(val);
} else if (Ext.isBoolean(val)) {
result = me.renderBool(val);
}
return Ext.util.Format.htmlEncode(result);
},
// private
renderDate : Ext.util.Format.date,
// private
renderBool : function(bVal) {
return this[bVal ? 'trueText' : 'falseText'];
},
// private
// Renders custom property names instead of raw names if defined in the Grid
getPropertyName : function(name) {
var pn = this.grid.propertyNames;
return pn && pn[name] ? pn[name] : name;
}
});</pre>
</body>
</html>