<!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-ux-DataView-LabelEditor'>/**
|
</span> *
|
*/
|
Ext.define('Ext.ux.DataView.LabelEditor', {
|
|
extend: 'Ext.Editor',
|
|
<span id='Ext-ux-DataView-LabelEditor-cfg-alignment'> alignment: 'tl-tl',
|
</span>
|
<span id='Ext-ux-DataView-LabelEditor-cfg-completeOnEnter'> completeOnEnter: true,
|
</span>
|
<span id='Ext-ux-DataView-LabelEditor-cfg-cancelOnEsc'> cancelOnEsc: true,
|
</span>
|
<span id='Ext-ux-DataView-LabelEditor-property-shim'> shim: false,
|
</span>
|
<span id='Ext-ux-DataView-LabelEditor-cfg-autoSize'> autoSize: {
|
</span> width: 'boundEl',
|
height: 'field'
|
},
|
|
<span id='Ext-ux-DataView-LabelEditor-property-labelSelector'> labelSelector: 'x-editable',
|
</span>
|
requires: [
|
'Ext.form.field.Text'
|
],
|
|
<span id='Ext-ux-DataView-LabelEditor-method-constructor'> constructor: function(config) {
|
</span> config.field = config.field || Ext.create('Ext.form.field.Text', {
|
allowOnlyWhitespace: false,
|
selectOnFocus:true
|
});
|
this.callParent([config]);
|
},
|
|
<span id='Ext-ux-DataView-LabelEditor-method-init'> init: function(view) {
|
</span> this.view = view;
|
this.mon(view, 'render', this.bindEvents, this);
|
this.on('complete', this.onSave, this);
|
},
|
|
<span id='Ext-ux-DataView-LabelEditor-method-bindEvents'> // initialize events
|
</span> bindEvents: function() {
|
this.mon(this.view.getEl(), {
|
click: {
|
fn: this.onClick,
|
scope: this
|
}
|
});
|
},
|
|
<span id='Ext-ux-DataView-LabelEditor-method-onClick'> // on mousedown show editor
|
</span> onClick: function(e, target) {
|
var me = this,
|
item, record;
|
|
if (Ext.fly(target).hasCls(me.labelSelector) && !me.editing && !e.ctrlKey && !e.shiftKey) {
|
e.stopEvent();
|
item = me.view.findItemByChild(target);
|
record = me.view.store.getAt(me.view.indexOf(item));
|
me.startEdit(target, record.data[me.dataIndex]);
|
me.activeRecord = record;
|
} else if (me.editing) {
|
me.field.blur();
|
e.preventDefault();
|
}
|
},
|
|
<span id='Ext-ux-DataView-LabelEditor-method-onSave'> // update record
|
</span> onSave: function(ed, value) {
|
this.activeRecord.set(this.dataIndex, value);
|
}
|
});
|
|
</pre>
|
</body>
|
</html>
|