[qo-modules-dev] [31] Updates to Ext 3 core files and examples and css |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/qo-modules-dev Archives
]
Revision: 31
Author: mjlecomte
Date: 2008-11-21 15:33:19 +0100 (Fri, 21 Nov 2008)
Log Message:
-----------
Updates to Ext 3 core files and examples and css
Modified Paths:
--------------
mickael/trunk/ext/v3.0.0-a1/adapter/ext/ext-base.js
mickael/trunk/ext/v3.0.0-a1/adapter/jquery/ext-jquery-adapter.js
mickael/trunk/ext/v3.0.0-a1/adapter/prototype/ext-prototype-adapter.js
mickael/trunk/ext/v3.0.0-a1/adapter/yui/ext-yui-adapter.js
mickael/trunk/ext/v3.0.0-a1/build/core/Ext-min.js
mickael/trunk/ext/v3.0.0-a1/build/data/Direct-min.js
mickael/trunk/ext/v3.0.0-a1/build/data/DirectProxy-min.js
mickael/trunk/ext/v3.0.0-a1/build/util/Date-min.js
mickael/trunk/ext/v3.0.0-a1/build/util/History-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/Editor-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/Panel-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/Window-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/form/DateField-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/form/Field-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/form/Form-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/Column-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/ColumnModel-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/GridView-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/layout/BorderLayout-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/layout/FormLayout-min.js
mickael/trunk/ext/v3.0.0-a1/build/widgets/menu/BaseItem-min.js
mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.html
mickael/trunk/ext/v3.0.0-a1/examples/chart/charts.html
mickael/trunk/ext/v3.0.0-a1/examples/core/spotlight.html
mickael/trunk/ext/v3.0.0-a1/examples/core/templates.html
mickael/trunk/ext/v3.0.0-a1/examples/debug/debug-console.html
mickael/trunk/ext/v3.0.0-a1/examples/desktop/desktop.html
mickael/trunk/ext/v3.0.0-a1/examples/form/absform.html
mickael/trunk/ext/v3.0.0-a1/examples/form/anchoring.html
mickael/trunk/ext/v3.0.0-a1/examples/form/combos.html
mickael/trunk/ext/v3.0.0-a1/examples/form/custom.html
mickael/trunk/ext/v3.0.0-a1/examples/form/dynamic.html
mickael/trunk/ext/v3.0.0-a1/examples/form/form-grid.html
mickael/trunk/ext/v3.0.0-a1/examples/form/forum-search.html
mickael/trunk/ext/v3.0.0-a1/examples/form/xml-form.html
mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.html
mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.js
mickael/trunk/ext/v3.0.0-a1/examples/grid/custom-grid.html
mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.html
mickael/trunk/ext/v3.0.0-a1/examples/grid/from-markup.html
mickael/trunk/ext/v3.0.0-a1/examples/grid/grid3.html
mickael/trunk/ext/v3.0.0-a1/examples/grid/grouping.html
mickael/trunk/ext/v3.0.0-a1/examples/grid/paging.html
mickael/trunk/ext/v3.0.0-a1/examples/grid/totals.html
mickael/trunk/ext/v3.0.0-a1/examples/grid/xml-grid.html
mickael/trunk/ext/v3.0.0-a1/examples/layout/accordion.html
mickael/trunk/ext/v3.0.0-a1/examples/layout/anchor.html
mickael/trunk/ext/v3.0.0-a1/examples/layout/column.html
mickael/trunk/ext/v3.0.0-a1/examples/layout/complex.html
mickael/trunk/ext/v3.0.0-a1/examples/layout/table.html
mickael/trunk/ext/v3.0.0-a1/examples/locale/dutch-form.html
mickael/trunk/ext/v3.0.0-a1/examples/locale/multi-lang.html
mickael/trunk/ext/v3.0.0-a1/examples/menu/actions.html
mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.html
mickael/trunk/ext/v3.0.0-a1/examples/message-box/msg-box.html
mickael/trunk/ext/v3.0.0-a1/examples/organizer/organizer.html
mickael/trunk/ext/v3.0.0-a1/examples/panel/panels.html
mickael/trunk/ext/v3.0.0-a1/examples/portal/portal.html
mickael/trunk/ext/v3.0.0-a1/examples/resizable/basic.html
mickael/trunk/ext/v3.0.0-a1/examples/samples.js
mickael/trunk/ext/v3.0.0-a1/examples/simple-widgets/progress-bar.html
mickael/trunk/ext/v3.0.0-a1/examples/simple-widgets/qtips.html
mickael/trunk/ext/v3.0.0-a1/examples/slider/slider.html
mickael/trunk/ext/v3.0.0-a1/examples/tabs/tabs-adv.html
mickael/trunk/ext/v3.0.0-a1/examples/tabs/tabs.html
mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.html
mickael/trunk/ext/v3.0.0-a1/examples/toolbar/toolbars.html
mickael/trunk/ext/v3.0.0-a1/examples/tree/column-tree.html
mickael/trunk/ext/v3.0.0-a1/examples/tree/reorder.html
mickael/trunk/ext/v3.0.0-a1/examples/tree/two-trees.html
mickael/trunk/ext/v3.0.0-a1/examples/tree/xml-tree-loader.html
mickael/trunk/ext/v3.0.0-a1/examples/view/chooser.html
mickael/trunk/ext/v3.0.0-a1/examples/view/data-view.html
mickael/trunk/ext/v3.0.0-a1/examples/view/list-view.html
mickael/trunk/ext/v3.0.0-a1/examples/window/hello.html
mickael/trunk/ext/v3.0.0-a1/examples/window/layout.html
mickael/trunk/ext/v3.0.0-a1/ext-all-debug.js
mickael/trunk/ext/v3.0.0-a1/ext-all.js
mickael/trunk/ext/v3.0.0-a1/package/date.js
mickael/trunk/ext/v3.0.0-a1/package/form/form-debug.js
mickael/trunk/ext/v3.0.0-a1/package/form/form.js
mickael/trunk/ext/v3.0.0-a1/package/grid/edit-grid-debug.js
mickael/trunk/ext/v3.0.0-a1/package/grid/grid.js
mickael/trunk/ext/v3.0.0-a1/package/menu/menus.js
mickael/trunk/ext/v3.0.0-a1/resources/css/ext-all.css
mickael/trunk/ext/v3.0.0-a1/resources/css/form.css
mickael/trunk/ext/v3.0.0-a1/resources/css/menu.css
mickael/trunk/ext/v3.0.0-a1/resources/css/panel.css
mickael/trunk/ext/v3.0.0-a1/resources/css/window.css
mickael/trunk/ext/v3.0.0-a1/resources/css/xtheme-gray.css
mickael/trunk/ext/v3.0.0-a1/resources/images/default/button/btn.gif
mickael/trunk/ext/v3.0.0-a1/resources/images/default/panel/tool-sprites.gif
mickael/trunk/ext/v3.0.0-a1/resources/images/default/panel/tools-sprites-trans.gif
mickael/trunk/ext/v3.0.0-a1/resources/images/default/window/left-corners.png
mickael/trunk/ext/v3.0.0-a1/resources/images/default/window/left-right.png
mickael/trunk/ext/v3.0.0-a1/resources/images/default/window/right-corners.png
mickael/trunk/ext/v3.0.0-a1/resources/images/default/window/top-bottom.png
mickael/trunk/ext/v3.0.0-a1/resources/images/gray/button/group-cs.gif
mickael/trunk/ext/v3.0.0-a1/resources/images/gray/panel/corners-sprite.gif
mickael/trunk/ext/v3.0.0-a1/resources/images/gray/panel/left-right.gif
mickael/trunk/ext/v3.0.0-a1/resources/images/gray/panel/top-bottom.gif
mickael/trunk/ext/v3.0.0-a1/resources/images/gray/toolbar/gray-bg.gif
mickael/trunk/ext/v3.0.0-a1/source/core/Ext.js
mickael/trunk/ext/v3.0.0-a1/source/data/Direct.js
mickael/trunk/ext/v3.0.0-a1/source/data/DirectProxy.js
mickael/trunk/ext/v3.0.0-a1/source/ext.jsb
mickael/trunk/ext/v3.0.0-a1/source/util/Date.js
mickael/trunk/ext/v3.0.0-a1/source/util/History.js
mickael/trunk/ext/v3.0.0-a1/source/util/MixedCollection.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/ComponentMgr.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/Editor.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/Layer.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/Panel.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/Window.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/form/DateField.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/form/Field.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/form/Form.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/Column.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/ColumnModel.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/EditorGrid.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/GridPanel.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/GridView.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/layout/BorderLayout.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/layout/FormLayout.js
mickael/trunk/ext/v3.0.0-a1/source/widgets/menu/BaseItem.js
Property Changed:
----------------
mickael/trunk/ext/v3.0.0-a1/learn/
Modified: mickael/trunk/ext/v3.0.0-a1/adapter/ext/ext-base.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/adapter/ext/ext-base.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/adapter/ext/ext-base.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -2,2162 +2,231 @@
* Ext JS Library 3.0 Pre-alpha
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@xxxxxxxxx
- *
+ *
* http://extjs.com/license
*/
-Ext = {
- version: '3.0'
-};
-window["undefined"] = window["undefined"];
-Ext.apply = function(o, c, defaults){
- if (defaults) {
- Ext.apply(o, defaults);
- }
- if (o && c && typeof c == 'object') {
- for (var p in c) {
- o[p] = c[p];
- }
- }
- return o;
-};
-(function(){
- var idSeed = 0;
- var ua = navigator.userAgent.toLowerCase();
- var isStrict = document.compatMode == "CSS1Compat", isOpera = ua.indexOf("opera") > -1, isChrome = ua.indexOf("chrome") > -1, isSafari = !isChrome && (/webkit|khtml/).test(ua), isSafari3 = isSafari && ua.indexOf('webkit/5') != -1, isIE = !isOpera && ua.indexOf("msie") > -1, isIE7 = !isOpera && ua.indexOf("msie 7") > -1, isIE8 = !isOpera && ua.indexOf("msie 8") > -1, isGecko = !isSafari && !isChrome && ua.indexOf("gecko") > -1, isGecko3 = isGecko && ua.indexOf("rv:1.9") > -1, isBorderBox = isIE && !isStrict, isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1), isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1), isAir = (ua.indexOf("adobeair") != -1), isLinux = (ua.indexOf("linux") != -1), isSecure = window.location.href.toLowerCase().indexOf("https") === 0;
- if (isIE && !isIE7) {
- try {
- document.execCommand("BackgroundImageCache", false, true);
- }
- catch (e) {
- }
- }
- Ext.apply(Ext, {
- isStrict: isStrict,
- isSecure: isSecure,
- isReady: false,
- enableGarbageCollector: true,
- enableListenerCollection: false,
- SSL_SECURE_URL: "javascript:false",
- BLANK_IMAGE_URL: "http:/" + "/extjs.com/s.gif",
- emptyFn: function(){
- },
- applyIf: function(o, c){
- if (o && c) {
- for (var p in c) {
- if (typeof o[p] == "undefined") {
- o[p] = c[p];
- }
- }
- }
- return o;
- },
- addBehaviors: function(o){
- if (!Ext.isReady) {
- Ext.onReady(function(){
- Ext.addBehaviors(o);
- });
- return;
- }
- var cache = {};
- for (var b in o) {
- var parts = b.split('@');
- if (parts[1]) {
- var s = parts[0];
- if (!cache[s]) {
- cache[s] = Ext.select(s);
- }
- cache[s].on(parts[1], o[b]);
- }
- }
- cache = null;
- },
- id: function(el, prefix){
- prefix = prefix || "ext-gen";
- el = Ext.getDom(el);
- var id = prefix + (++idSeed);
- return el ? (el.id ? el.id : (el.id = id)) : id;
- },
- extend: function(){
- var io = function(o){
- for (var m in o) {
- this[m] = o[m];
- }
- };
- var oc = Object.prototype.constructor;
- return function(sb, sp, overrides){
- if (typeof sp == 'object') {
- overrides = sp;
- sp = sb;
- sb = overrides.constructor != oc ? overrides.constructor : function(){
- sp.apply(this, arguments);
- };
- }
- var F = function(){
- }, sbp, spp = sp.prototype;
- F.prototype = spp;
- sbp = sb.prototype = new F();
- sbp.constructor = sb;
- sb.superclass = spp;
- if (spp.constructor == oc) {
- spp.constructor = sp;
- }
- sb.override = function(o){
- Ext.override(sb, o);
- };
- sbp.superclass = sbp.supr = (function(){
- return spp;
- });
- sbp.override = io;
- Ext.override(sb, overrides);
- sb.extend = function(o){
- Ext.extend(sb, o);
- };
- return sb;
- };
- }(),
- extendX: function(supr, fn){
- return Ext.extend(supr, fn(supr.prototype));
- },
- override: function(origclass, overrides){
- if (overrides) {
- var p = origclass.prototype;
- for (var method in overrides) {
- p[method] = overrides[method];
- }
- }
- },
- namespace: function(){
- var a = arguments, o = null, i, j, d, rt;
- for (i = 0; i < a.length; ++i) {
- d = a[i].split(".");
- rt = d[0];
- eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
- for (j = 1; j < d.length; ++j) {
- o[d[j]] = o[d[j]] ||
- {};
- o = o[d[j]];
- }
- }
- },
- urlEncode: function(o){
- if (!o) {
- return "";
- }
- var buf = [];
- for (var key in o) {
- var ov = o[key], k = encodeURIComponent(key);
- var type = typeof ov;
- if (type == 'undefined') {
- buf.push(k, "=&");
- }
- else
- if (type != "function" && type != "object") {
- buf.push(k, "=", encodeURIComponent(ov), "&");
- }
- else
- if (Ext.isArray(ov)) {
- if (ov.length) {
- for (var i = 0, len = ov.length; i < len; i++) {
- buf.push(k, "=", encodeURIComponent(ov[i] === undefined ? '' : ov[i]), "&");
- }
- }
- else {
- buf.push(k, "=&");
- }
- }
- }
- buf.pop();
- return buf.join("");
- },
- urlDecode: function(string, overwrite){
- if (!string || !string.length) {
- return {};
- }
- var obj = {};
- var pairs = string.split('&');
- var pair, name, value;
- for (var i = 0, len = pairs.length; i < len; i++) {
- pair = pairs[i].split('=');
- name = decodeURIComponent(pair[0]);
- value = decodeURIComponent(pair[1]);
- if (overwrite !== true) {
- if (typeof obj[name] == "undefined") {
- obj[name] = value;
- }
- else
- if (typeof obj[name] == "string") {
- obj[name] = [obj[name]];
- obj[name].push(value);
- }
- else {
- obj[name].push(value);
- }
- }
- else {
- obj[name] = value;
- }
- }
- return obj;
- },
- each: function(array, fn, scope){
- if (typeof array.length == "undefined" || typeof array == "string") {
- array = [array];
- }
- for (var i = 0, len = array.length; i < len; i++) {
- if (fn.call(scope || array[i], array[i], i, array) === false) {
- return i;
- };
- }
- },
- combine: function(){
- var as = arguments, l = as.length, r = [];
- for (var i = 0; i < l; i++) {
- var a = as[i];
- if (Ext.isArray(a)) {
- r = r.concat(a);
- }
- else
- if (a.length !== undefined && !a.substr) {
- r = r.concat(Array.prototype.slice.call(a, 0));
- }
- else {
- r.push(a);
- }
- }
- return r;
- },
- escapeRe: function(s){
- return s.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1");
- },
- callback: function(cb, scope, args, delay){
- if (typeof cb == "function") {
- if (delay) {
- cb.defer(delay, scope, args || []);
- }
- else {
- cb.apply(scope, args || []);
- }
- }
- },
- getDom: function(el){
- if (!el || !document) {
- return null;
- }
- return el.dom ? el.dom : (typeof el == 'string' ? document.getElementById(el) : el);
- },
- getDoc: function(){
- return Ext.get(document);
- },
- getBody: function(){
- return Ext.get(document.body || document.documentElement);
- },
- getCmp: function(id){
- return Ext.ComponentMgr.get(id);
- },
- num: function(v, defaultValue){
- if (typeof v != 'number') {
- return defaultValue;
- }
- return v;
- },
- destroy: function(){
- for (var i = 0, a = arguments, len = a.length; i < len; i++) {
- var as = a[i];
- if (as) {
- if (typeof as.destroy == 'function') {
- as.destroy();
- }
- else
- if (as.dom) {
- as.removeAllListeners();
- as.remove();
- }
- }
- }
- },
- destroyMembers: function(o, arg1, arg2, etc){
- for (var i = 1, a = arguments, len = a.length; i < len; i++) {
- Ext.destroy(o[a[i]]);
- delete o[a[i]];
- }
- },
- removeNode: isIE ? function(){
- var d;
- return function(n){
- if (n && n.tagName != 'BODY') {
- d = d || document.createElement('div');
- d.appendChild(n);
- d.innerHTML = '';
- }
- }
- }() : function(n){
- if (n && n.parentNode && n.tagName != 'BODY') {
- n.parentNode.removeChild(n);
- }
- },
- type: function(o){
- if (o === undefined || o === null) {
- return false;
- }
- if (o.htmlElement) {
- return 'element';
- }
- var t = typeof o;
- if (t == 'object' && o.nodeName) {
- switch (o.nodeType) {
- case 1:
- return 'element';
- case 3:
- return (/\S/).test(o.nodeValue) ? 'textnode' : 'whitespace';
- }
- }
- if (t == 'object' || t == 'function') {
- switch (o.constructor) {
- case Array:
- return 'array';
- case RegExp:
- return 'regexp';
- }
- if (typeof o.length == 'number' && typeof o.item == 'function') {
- return 'nodelist';
- }
- }
- return t;
- },
- isEmpty: function(v, allowBlank){
- return v === null || v === undefined || (!allowBlank ? v === '' : false);
- },
- value: function(v, defaultValue, allowBlank){
- return Ext.isEmpty(v, allowBlank) ? defaultValue : v;
- },
- isArray: function(v){
- return v && typeof v.length == 'number' && typeof v.splice == 'function';
- },
- isDate: function(v){
- return v && typeof v.getFullYear == 'function';
- },
- copyTo: function(dest, source, names){
- if (typeof names == 'string') {
- names = names.split(/[,;\s]/);
- }
- for (var i = 0, len = names.length; i < len; i++) {
- var n = names[i];
- if (source.hasOwnProperty(n)) {
- dest[n] = source[n];
- }
- }
- return dest;
- },
- intercept: function(o, name, fn, scope){
- o[name] = o[name].createInterceptor(fn, scope);
- },
- sequence: function(o, name, fn, scope){
- o[name] = o[name].createSequence(fn, scope);
- },
- isOpera: isOpera,
- isChrome: isChrome,
- isSafari: isSafari,
- isSafari3: isSafari3,
- isSafari2: isSafari && !isSafari3,
- isIE: isIE,
- isIE6: isIE && !isIE7 && !isIE8,
- isIE7: isIE7,
- isIE8: isIE8,
- isGecko: isGecko,
- isGecko2: isGecko && !isGecko3,
- isGecko3: isGecko3,
- isBorderBox: isBorderBox,
- isLinux: isLinux,
- isWindows: isWindows,
- isMac: isMac,
- isAir: isAir,
- useShims: ((isIE && !isIE7) || (isMac && isGecko && !isGecko3))
- });
- Ext.ns = Ext.namespace;
-})();
-Ext.ns("Ext", "Ext.util", "Ext.grid", "Ext.dd", "Ext.tree", "Ext.data", "Ext.form", "Ext.menu", "Ext.state", "Ext.lib", "Ext.layout", "Ext.app", "Ext.ux", "Ext.chart");
-Ext.apply(Function.prototype, {
- createCallback: function(){
- var args = arguments;
- var method = this;
- return function(){
- return method.apply(window, args);
- };
- },
- createDelegate: function(obj, args, appendArgs){
- var method = this;
- return function(){
- var callArgs = args || arguments;
- if (appendArgs === true) {
- callArgs = Array.prototype.slice.call(arguments, 0);
- callArgs = callArgs.concat(args);
- }
- else
- if (typeof appendArgs == "number") {
- callArgs = Array.prototype.slice.call(arguments, 0);
- var applyArgs = [appendArgs, 0].concat(args);
- Array.prototype.splice.apply(callArgs, applyArgs);
- }
- return method.apply(obj || window, callArgs);
- };
- },
- defer: function(millis, obj, args, appendArgs){
- var fn = this.createDelegate(obj, args, appendArgs);
- if (millis) {
- return setTimeout(fn, millis);
- }
- fn();
- return 0;
- },
- createSequence: function(fcn, scope){
- if (typeof fcn != "function") {
- return this;
- }
- var method = this;
- return function(){
- var retval = method.apply(this || window, arguments);
- fcn.apply(scope || this || window, arguments);
- return retval;
- };
- },
- createInterceptor: function(fcn, scope){
- if (typeof fcn != "function") {
- return this;
- }
- var method = this;
- return function(){
- fcn.target = this;
- fcn.method = method;
- if (fcn.apply(scope || this || window, arguments) === false) {
- return;
- }
- return method.apply(this || window, arguments);
- };
- }
-});
-Ext.applyIf(String, {
- escape: function(string){
- return string.replace(/('|\\)/g, "\\$1");
- },
- leftPad: function(val, size, ch){
- var result = new String(val);
- if (!ch) {
- ch = " ";
- }
- while (result.length < size) {
- result = ch + result;
- }
- return result.toString();
- },
- format: function(format){
- var args = Array.prototype.slice.call(arguments, 1);
- return format.replace(/\{(\d+)\}/g, function(m, i){
- return args[i];
- });
- }
-});
-String.prototype.toggle = function(value, other){
- return this == value ? other : value;
-};
-String.prototype.trim = function(){
- var re = /^\s+|\s+$/g;
- return function(){
- return this.replace(re, "");
- };
-}();
-Ext.applyIf(Number.prototype, {
- constrain: function(min, max){
- return Math.min(Math.max(this, min), max);
- }
-});
-Ext.applyIf(Array.prototype, {
- indexOf: function(o){
- for (var i = 0, len = this.length; i < len; i++) {
- if (this[i] == o)
- return i;
- }
- return -1;
- },
- remove: function(o){
- var index = this.indexOf(o);
- if (index != -1) {
- this.splice(index, 1);
- }
- return this;
- }
-});
-Date.prototype.getElapsed = function(date){
- return Math.abs((date || new Date()).getTime() - this.getTime());
-};
-(function(){
- var libFlyweight;
- Ext.lib.Dom = {
- getViewWidth: function(full){
- return full ? this.getDocumentWidth() : this.getViewportWidth();
- },
- getViewHeight: function(full){
- return full ? this.getDocumentHeight() : this.getViewportHeight();
- },
- getDocumentHeight: function(){
- var scrollHeight = (document.compatMode != "CSS1Compat") ? document.body.scrollHeight : document.documentElement.scrollHeight;
- return Math.max(scrollHeight, this.getViewportHeight());
- },
- getDocumentWidth: function(){
- var scrollWidth = (document.compatMode != "CSS1Compat") ? document.body.scrollWidth : document.documentElement.scrollWidth;
- return Math.max(scrollWidth, this.getViewportWidth());
- },
- getViewportHeight: function(){
- if (Ext.isIE) {
- return Ext.isStrict ? document.documentElement.clientHeight : document.body.clientHeight;
- }
- else {
- return self.innerHeight;
- }
- },
- getViewportWidth: function(){
- if (!Ext.isStrict && !Ext.isOpera) {
- return document.body.clientWidth;
- }
- else
- if (Ext.isIE) {
- return document.documentElement.clientWidth;
- }
- else {
- return self.innerWidth;
- }
- },
- isAncestor: function(p, c){
- p = Ext.getDom(p);
- c = Ext.getDom(c);
- if (!p || !c) {
- return false;
- }
- if (p.contains && !Ext.isSafari) {
- return p.contains(c);
- }
- else
- if (p.compareDocumentPosition) {
- return !!(p.compareDocumentPosition(c) & 16);
- }
- else {
- var parent = c.parentNode;
- while (parent) {
- if (parent == p) {
- return true;
- }
- else
- if (!parent.tagName || parent.tagName.toUpperCase() == "HTML") {
- return false;
- }
- parent = parent.parentNode;
- }
- return false;
- }
- },
- getRegion: function(el){
- return Ext.lib.Region.getRegion(el);
- },
- getY: function(el){
- return this.getXY(el)[1];
- },
- getX: function(el){
- return this.getXY(el)[0];
- },
- getXY: function(el){
- var p, pe, b, scroll, bd = (document.body || document.documentElement);
- el = Ext.getDom(el);
- if (el == bd) {
- return [0, 0];
- }
- if (el.getBoundingClientRect) {
- b = el.getBoundingClientRect();
- scroll = fly(document).getScroll();
- return [b.left + scroll.left, b.top + scroll.top];
- }
- var x = 0, y = 0;
- p = el;
- var hasAbsolute = fly(el).getStyle("position") == "absolute";
- while (p) {
- x += p.offsetLeft;
- y += p.offsetTop;
- if (!hasAbsolute && fly(p).getStyle("position") == "absolute") {
- hasAbsolute = true;
- }
- if (Ext.isGecko) {
- pe = fly(p);
- var bt = parseInt(pe.getStyle("borderTopWidth"), 10) || 0;
- var bl = parseInt(pe.getStyle("borderLeftWidth"), 10) || 0;
- x += bl;
- y += bt;
- if (p != el && pe.getStyle('overflow') != 'visible') {
- x += bl;
- y += bt;
- }
- }
- p = p.offsetParent;
- }
- if (Ext.isSafari && hasAbsolute) {
- x -= bd.offsetLeft;
- y -= bd.offsetTop;
- }
- if (Ext.isGecko && !hasAbsolute) {
- var dbd = fly(bd);
- x += parseInt(dbd.getStyle("borderLeftWidth"), 10) || 0;
- y += parseInt(dbd.getStyle("borderTopWidth"), 10) || 0;
- }
- p = el.parentNode;
- while (p && p != bd) {
- if (!Ext.isOpera || (p.tagName != 'TR' && fly(p).getStyle("display") != "inline")) {
- x -= p.scrollLeft;
- y -= p.scrollTop;
- }
- p = p.parentNode;
- }
- return [x, y];
- },
- setXY: function(el, xy){
- el = Ext.fly(el, '_setXY');
- el.position();
- var pts = el.translatePoints(xy);
- if (xy[0] !== false) {
- el.dom.style.left = pts.left + "px";
- }
- if (xy[1] !== false) {
- el.dom.style.top = pts.top + "px";
- }
- },
- setX: function(el, x){
- this.setXY(el, [x, false]);
- },
- setY: function(el, y){
- this.setXY(el, [false, y]);
- }
- };
- Ext.lib.Event = function(){
- var loadComplete = false;
- var listeners = [];
- var unloadListeners = [];
- var retryCount = 0;
- var onAvailStack = [];
- return {
- POLL_RETRYS: 200,
- POLL_INTERVAL: 20,
- EL: 0,
- TYPE: 1,
- FN: 2,
- WFN: 3,
- OBJ: 3,
- ADJ_SCOPE: 4,
- _interval: null,
- startInterval: function(){
- if (!this._interval) {
- var self = this;
- var callback = function(){
- self._tryPreloadAttach();
- };
- this._interval = setInterval(callback, this.POLL_INTERVAL);
- }
- },
- onAvailable: function(p_id, p_fn, p_obj, p_override){
- onAvailStack.push({
- id: p_id,
- fn: p_fn,
- obj: p_obj,
- override: p_override,
- checkReady: false
- });
- retryCount = this.POLL_RETRYS;
- this.startInterval();
- },
- addListener: function(el, eventName, fn){
- el = Ext.getDom(el);
- if (!el || !fn) {
- return false;
- }
- if ("unload" == eventName) {
- unloadListeners[unloadListeners.length] = [el, eventName, fn];
- return true;
- }
- var li = [el, eventName, fn, fn];
- var index = listeners.length;
- listeners[index] = li;
- this.doAdd(el, eventName, fn, false);
- return true;
- },
- removeListener: function(el, eventName, fn){
- var i, len;
- el = Ext.getDom(el);
- if (!fn) {
- return this.purgeElement(el, false, eventName);
- }
- if ("unload" == eventName) {
- for (i = 0, len = unloadListeners.length; i < len; i++) {
- var li = unloadListeners[i];
- if (li && li[0] == el && li[1] == eventName && li[2] == fn) {
- unloadListeners.splice(i, 1);
- return true;
- }
- }
- return false;
- }
- var cacheItem = null;
- var index = arguments[3];
- if ("undefined" == typeof index) {
- index = this._getCacheIndex(el, eventName, fn);
- }
- if (index >= 0) {
- cacheItem = listeners[index];
- }
- if (!el || !cacheItem) {
- return false;
- }
- this.doRemove(el, eventName, cacheItem[this.WFN], false);
- delete listeners[index][this.WFN];
- delete listeners[index][this.FN];
- listeners.splice(index, 1);
- return true;
- },
- getTarget: function(ev){
- ev = ev.browserEvent || ev;
- var t = ev.target || ev.srcElement;
- return this.resolveTextNode(t);
- },
- resolveTextNode: function(node){
- if (Ext.isSafari && node && 3 == node.nodeType) {
- return node.parentNode;
- }
- else {
- return node;
- }
- },
- getPageX: function(ev){
- ev = ev.browserEvent || ev;
- var x = ev.pageX;
- if (!x && 0 !== x) {
- x = ev.clientX || 0;
- if (Ext.isIE) {
- x += this.getScroll()[1];
- }
- }
- return x;
- },
- getPageY: function(ev){
- ev = ev.browserEvent || ev;
- var y = ev.pageY;
- if (!y && 0 !== y) {
- y = ev.clientY || 0;
- if (Ext.isIE) {
- y += this.getScroll()[0];
- }
- }
- return y;
- },
- getXY: function(ev){
- ev = ev.browserEvent || ev;
- return [this.getPageX(ev), this.getPageY(ev)];
- },
- getRelatedTarget: function(ev){
- ev = ev.browserEvent || ev;
- var t = ev.relatedTarget;
- if (!t) {
- if (ev.type == "mouseout") {
- t = ev.toElement;
- }
- else
- if (ev.type == "mouseover") {
- t = ev.fromElement;
- }
- }
- return this.resolveTextNode(t);
- },
- getTime: function(ev){
- ev = ev.browserEvent || ev;
- if (!ev.time) {
- var t = new Date().getTime();
- try {
- ev.time = t;
- }
- catch (ex) {
- return t;
- }
- }
- return ev.time;
- },
- stopEvent: function(ev){
- this.stopPropagation(ev);
- this.preventDefault(ev);
- },
- stopPropagation: function(ev){
- ev = ev.browserEvent || ev;
- if (ev.stopPropagation) {
- ev.stopPropagation();
- }
- else {
- ev.cancelBubble = true;
- }
- },
- preventDefault: function(ev){
- ev = ev.browserEvent || ev;
- if (ev.preventDefault) {
- ev.preventDefault();
- }
- else {
- ev.returnValue = false;
- }
- },
- getEvent: function(e){
- var ev = e || window.event;
- if (!ev) {
- var c = this.getEvent.caller;
- while (c) {
- ev = c.arguments[0];
- if (ev && Event == ev.constructor) {
- break;
- }
- c = c.caller;
- }
- }
- return ev;
- },
- getCharCode: function(ev){
- ev = ev.browserEvent || ev;
- return ev.charCode || ev.keyCode || 0;
- },
- _getCacheIndex: function(el, eventName, fn){
- for (var i = 0, len = listeners.length; i < len; ++i) {
- var li = listeners[i];
- if (li && li[this.FN] == fn && li[this.EL] == el && li[this.TYPE] == eventName) {
- return i;
- }
- }
- return -1;
- },
- elCache: {},
- getEl: function(id){
- return document.getElementById(id);
- },
- clearCache: function(){
- },
- _load: function(e){
- loadComplete = true;
- var EU = Ext.lib.Event;
- if (Ext.isIE) {
- EU.doRemove(window, "load", EU._load);
- }
- },
- _tryPreloadAttach: function(){
- if (this.locked) {
- return false;
- }
- this.locked = true;
- var tryAgain = !loadComplete;
- if (!tryAgain) {
- tryAgain = (retryCount > 0);
- }
- var notAvail = [];
- for (var i = 0, len = onAvailStack.length; i < len; ++i) {
- var item = onAvailStack[i];
- if (item) {
- var el = this.getEl(item.id);
- if (el) {
- if (!item.checkReady || loadComplete || el.nextSibling || (document && document.body)) {
- var scope = el;
- if (item.override) {
- if (item.override === true) {
- scope = item.obj;
- }
- else {
- scope = item.override;
- }
- }
- item.fn.call(scope, item.obj);
- onAvailStack[i] = null;
- }
- }
- else {
- notAvail.push(item);
- }
- }
- }
- retryCount = (notAvail.length === 0) ? 0 : retryCount - 1;
- if (tryAgain) {
- this.startInterval();
- }
- else {
- clearInterval(this._interval);
- this._interval = null;
- }
- this.locked = false;
- return true;
- },
- purgeElement: function(el, recurse, eventName){
- var elListeners = this.getListeners(el, eventName);
- if (elListeners) {
- for (var i = 0, len = elListeners.length; i < len; ++i) {
- var l = elListeners[i];
- this.removeListener(el, l.type, l.fn);
- }
- }
- if (recurse && el && el.childNodes) {
- for (i = 0, len = el.childNodes.length; i < len; ++i) {
- this.purgeElement(el.childNodes[i], recurse, eventName);
- }
- }
- },
- getListeners: function(el, eventName){
- var results = [], searchLists;
- if (!eventName) {
- searchLists = [listeners, unloadListeners];
- }
- else
- if (eventName == "unload") {
- searchLists = [unloadListeners];
- }
- else {
- searchLists = [listeners];
- }
- for (var j = 0; j < searchLists.length; ++j) {
- var searchList = searchLists[j];
- if (searchList && searchList.length > 0) {
- for (var i = 0, len = searchList.length; i < len; ++i) {
- var l = searchList[i];
- if (l && l[this.EL] === el && (!eventName || eventName === l[this.TYPE])) {
- results.push({
- type: l[this.TYPE],
- fn: l[this.FN],
- obj: l[this.OBJ],
- adjust: l[this.ADJ_SCOPE],
- index: i
- });
- }
- }
- }
- }
- return (results.length) ? results : null;
- },
- _unload: function(e){
- var EU = Ext.lib.Event, i, j, l, len, index;
- for (i = 0, len = unloadListeners.length; i < len; ++i) {
- l = unloadListeners[i];
- if (l) {
- var scope = window;
- if (l[EU.ADJ_SCOPE]) {
- if (l[EU.ADJ_SCOPE] === true) {
- scope = l[EU.OBJ];
- }
- else {
- scope = l[EU.ADJ_SCOPE];
- }
- }
- l[EU.FN].call(scope, EU.getEvent(e), l[EU.OBJ]);
- unloadListeners[i] = null;
- l = null;
- scope = null;
- }
- }
- unloadListeners = null;
- if (listeners && listeners.length > 0) {
- j = listeners.length;
- while (j) {
- index = j - 1;
- l = listeners[index];
- if (l) {
- EU.removeListener(l[EU.EL], l[EU.TYPE], l[EU.FN], index);
- }
- j = j - 1;
- }
- l = null;
- EU.clearCache();
- }
- EU.doRemove(window, "unload", EU._unload);
- },
- getScroll: function(){
- var dd = document.documentElement, db = document.body;
- if (dd && (dd.scrollTop || dd.scrollLeft)) {
- return [dd.scrollTop, dd.scrollLeft];
- }
- else
- if (db) {
- return [db.scrollTop, db.scrollLeft];
- }
- else {
- return [0, 0];
- }
- },
- doAdd: function(){
- if (window.addEventListener) {
- return function(el, eventName, fn, capture){
- el.addEventListener(eventName, fn, (capture));
- };
- }
- else
- if (window.attachEvent) {
- return function(el, eventName, fn, capture){
- el.attachEvent("on" + eventName, fn);
- };
- }
- else {
- return function(){
- };
- }
- }(),
- doRemove: function(){
- if (window.removeEventListener) {
- return function(el, eventName, fn, capture){
- el.removeEventListener(eventName, fn, (capture));
- };
- }
- else
- if (window.detachEvent) {
- return function(el, eventName, fn){
- el.detachEvent("on" + eventName, fn);
- };
- }
- else {
- return function(){
- };
- }
- }()
- };
- }();
- var E = Ext.lib.Event;
- E.on = E.addListener;
- E.un = E.removeListener;
- if (document && document.body) {
- E._load();
- }
- else {
- E.doAdd(window, "load", E._load);
- }
- E.doAdd(window, "unload", E._unload);
- E._tryPreloadAttach();
- Ext.lib.Ajax = {
- request: function(method, uri, cb, data, options){
- if (options) {
- var hs = options.headers;
- if (hs) {
- for (var h in hs) {
- if (hs.hasOwnProperty(h)) {
- this.initHeader(h, hs[h], false);
- }
- }
- }
- if (options.xmlData) {
- if (!hs || !hs['Content-Type']) {
- this.initHeader('Content-Type', 'text/xml', false);
- }
- method = (method ? method : (options.method ? options.method : 'POST'));
- data = options.xmlData;
- }
- else
- if (options.jsonData) {
- if (!hs || !hs['Content-Type']) {
- this.initHeader('Content-Type', 'application/json', false);
- }
- method = (method ? method : (options.method ? options.method : 'POST'));
- data = typeof options.jsonData == 'object' ? Ext.encode(options.jsonData) : options.jsonData;
- }
- }
- return this.asyncRequest(method, uri, cb, data);
- },
- serializeForm: function(form){
- if (typeof form == 'string') {
- form = (document.getElementById(form) || document.forms[form]);
- }
- var el, name, val, disabled, data = '', hasSubmit = false;
- for (var i = 0; i < form.elements.length; i++) {
- el = form.elements[i];
- disabled = form.elements[i].disabled;
- name = form.elements[i].name;
- val = form.elements[i].value;
- if (!disabled && name) {
- switch (el.type) {
- case 'select-one':
- case 'select-multiple':
- for (var j = 0; j < el.options.length; j++) {
- if (el.options[j].selected) {
- if (Ext.isIE) {
- data += encodeURIComponent(name) + '=' + encodeURIComponent(el.options[j].attributes['value'].specified ? el.options[j].value : el.options[j].text) + '&';
- }
- else {
- data += encodeURIComponent(name) + '=' + encodeURIComponent(el.options[j].hasAttribute('value') ? el.options[j].value : el.options[j].text) + '&';
- }
- }
- }
- break;
- case 'radio':
- case 'checkbox':
- if (el.checked) {
- data += encodeURIComponent(name) + '=' + encodeURIComponent(val) + '&';
- }
- break;
- case 'file':
- case undefined:
- case 'reset':
- case 'button':
- break;
- case 'submit':
- if (!hasSubmit) {
- data += encodeURIComponent(name) + '=' + encodeURIComponent(val) + '&';
- hasSubmit = true;
- }
- break;
- default:
- data += encodeURIComponent(name) + '=' + encodeURIComponent(val) + '&';
- break;
- }
- }
- }
- data = data.substr(0, data.length - 1);
- return data;
- },
- headers: {},
- hasHeaders: false,
- useDefaultHeader: true,
- defaultPostHeader: 'application/x-www-form-urlencoded; charset=UTF-8',
- useDefaultXhrHeader: true,
- defaultXhrHeader: 'XMLHttpRequest',
- hasDefaultHeaders: true,
- defaultHeaders: {},
- poll: {},
- timeout: {},
- pollInterval: 50,
- transactionId: 0,
- setProgId: function(id){
- this.activeX.unshift(id);
- },
- setDefaultPostHeader: function(b){
- this.useDefaultHeader = b;
- },
- setDefaultXhrHeader: function(b){
- this.useDefaultXhrHeader = b;
- },
- setPollingInterval: function(i){
- if (typeof i == 'number' && isFinite(i)) {
- this.pollInterval = i;
- }
- },
- createXhrObject: function(transactionId){
- var obj, http;
- try {
- http = new XMLHttpRequest();
- obj = {
- conn: http,
- tId: transactionId
- };
- }
- catch (e) {
- for (var i = 0; i < this.activeX.length; ++i) {
- try {
- http = new ActiveXObject(this.activeX[i]);
- obj = {
- conn: http,
- tId: transactionId
- };
- break;
- }
- catch (e) {
- }
- }
- }
- finally {
- return obj;
- }
- },
- getConnectionObject: function(){
- var o;
- var tId = this.transactionId;
- try {
- o = this.createXhrObject(tId);
- if (o) {
- this.transactionId++;
- }
- }
- catch (e) {
- }
- finally {
- return o;
- }
- },
- asyncRequest: function(method, uri, callback, postData){
- var o = this.getConnectionObject();
- if (!o) {
- return null;
- }
- else {
- o.conn.open(method, uri, true);
- if (this.useDefaultXhrHeader) {
- if (!this.defaultHeaders['X-Requested-With']) {
- this.initHeader('X-Requested-With', this.defaultXhrHeader, true);
- }
- }
- if (postData && this.useDefaultHeader && (!this.hasHeaders || !this.headers['Content-Type'])) {
- this.initHeader('Content-Type', this.defaultPostHeader);
- }
- if (this.hasDefaultHeaders || this.hasHeaders) {
- this.setHeader(o);
- }
- this.handleReadyState(o, callback);
- o.conn.send(postData || null);
- return o;
- }
- },
- handleReadyState: function(o, callback){
- var oConn = this;
- if (callback && callback.timeout) {
- this.timeout[o.tId] = window.setTimeout(function(){
- oConn.abort(o, callback, true);
- }, callback.timeout);
- }
- this.poll[o.tId] = window.setInterval(function(){
- if (o.conn && o.conn.readyState == 4) {
- window.clearInterval(oConn.poll[o.tId]);
- delete oConn.poll[o.tId];
- if (callback && callback.timeout) {
- window.clearTimeout(oConn.timeout[o.tId]);
- delete oConn.timeout[o.tId];
- }
- oConn.handleTransactionResponse(o, callback);
- }
- }, this.pollInterval);
- },
- handleTransactionResponse: function(o, callback, isAbort){
- if (!callback) {
- this.releaseObject(o);
- return;
- }
- var httpStatus, responseObject;
- try {
- if (o.conn.status !== undefined && o.conn.status != 0) {
- httpStatus = o.conn.status;
- }
- else {
- httpStatus = 13030;
- }
- }
- catch (e) {
- httpStatus = 13030;
- }
- if (httpStatus >= 200 && httpStatus < 300) {
- responseObject = this.createResponseObject(o, callback.argument);
- if (callback.success) {
- if (!callback.scope) {
- callback.success(responseObject);
- }
- else {
- callback.success.apply(callback.scope, [responseObject]);
- }
- }
- }
- else {
- switch (httpStatus) {
- case 12002:
- case 12029:
- case 12030:
- case 12031:
- case 12152:
- case 13030:
- responseObject = this.createExceptionObject(o.tId, callback.argument, (isAbort ? isAbort : false));
- if (callback.failure) {
- if (!callback.scope) {
- callback.failure(responseObject);
- }
- else {
- callback.failure.apply(callback.scope, [responseObject]);
- }
- }
- break;
- default:
- responseObject = this.createResponseObject(o, callback.argument);
- if (callback.failure) {
- if (!callback.scope) {
- callback.failure(responseObject);
- }
- else {
- callback.failure.apply(callback.scope, [responseObject]);
- }
- }
- }
- }
- this.releaseObject(o);
- responseObject = null;
- },
- createResponseObject: function(o, callbackArg){
- var obj = {};
- var headerObj = {};
- try {
- var headerStr = o.conn.getAllResponseHeaders();
- var header = headerStr.split('\n');
- for (var i = 0; i < header.length; i++) {
- var delimitPos = header[i].indexOf(':');
- if (delimitPos != -1) {
- headerObj[header[i].substring(0, delimitPos)] = header[i].substring(delimitPos + 2);
- }
- }
- }
- catch (e) {
- }
- obj.tId = o.tId;
- obj.status = o.conn.status;
- obj.statusText = o.conn.statusText;
- obj.getResponseHeader = headerObj;
- obj.getAllResponseHeaders = headerStr;
- obj.responseText = o.conn.responseText;
- obj.responseXML = o.conn.responseXML;
- if (typeof callbackArg !== undefined) {
- obj.argument = callbackArg;
- }
- return obj;
- },
- createExceptionObject: function(tId, callbackArg, isAbort){
- var COMM_CODE = 0;
- var COMM_ERROR = 'communication failure';
- var ABORT_CODE = -1;
- var ABORT_ERROR = 'transaction aborted';
- var obj = {};
- obj.tId = tId;
- if (isAbort) {
- obj.status = ABORT_CODE;
- obj.statusText = ABORT_ERROR;
- }
- else {
- obj.status = COMM_CODE;
- obj.statusText = COMM_ERROR;
- }
- if (callbackArg) {
- obj.argument = callbackArg;
- }
- return obj;
- },
- initHeader: function(label, value, isDefault){
- var headerObj = (isDefault) ? this.defaultHeaders : this.headers;
- if (headerObj[label] === undefined) {
- headerObj[label] = value;
- }
- else {
- headerObj[label] = value + "," + headerObj[label];
- }
- if (isDefault) {
- this.hasDefaultHeaders = true;
- }
- else {
- this.hasHeaders = true;
- }
- },
- setHeader: function(o){
- if (this.hasDefaultHeaders) {
- for (var prop in this.defaultHeaders) {
- if (this.defaultHeaders.hasOwnProperty(prop)) {
- o.conn.setRequestHeader(prop, this.defaultHeaders[prop]);
- }
- }
- }
- if (this.hasHeaders) {
- for (var prop in this.headers) {
- if (this.headers.hasOwnProperty(prop)) {
- o.conn.setRequestHeader(prop, this.headers[prop]);
- }
- }
- this.headers = {};
- this.hasHeaders = false;
- }
- },
- resetDefaultHeaders: function(){
- delete this.defaultHeaders;
- this.defaultHeaders = {};
- this.hasDefaultHeaders = false;
- },
- abort: function(o, callback, isTimeout){
- if (this.isCallInProgress(o)) {
- o.conn.abort();
- window.clearInterval(this.poll[o.tId]);
- delete this.poll[o.tId];
- if (isTimeout) {
- delete this.timeout[o.tId];
- }
- this.handleTransactionResponse(o, callback, true);
- return true;
- }
- else {
- return false;
- }
- },
- isCallInProgress: function(o){
- if (o.conn) {
- return o.conn.readyState != 4 && o.conn.readyState != 0;
- }
- else {
- return false;
- }
- },
- releaseObject: function(o){
- o.conn = null;
- o = null;
- },
- activeX: ['MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP']
- };
- Ext.lib.Region = function(t, r, b, l){
- this.top = t;
- this[1] = t;
- this.right = r;
- this.bottom = b;
- this.left = l;
- this[0] = l;
- };
- Ext.lib.Region.prototype = {
- contains: function(region){
- return (region.left >= this.left && region.right <= this.right && region.top >= this.top && region.bottom <= this.bottom);
- },
- getArea: function(){
- return ((this.bottom - this.top) * (this.right - this.left));
- },
- intersect: function(region){
- var t = Math.max(this.top, region.top);
- var r = Math.min(this.right, region.right);
- var b = Math.min(this.bottom, region.bottom);
- var l = Math.max(this.left, region.left);
- if (b >= t && r >= l) {
- return new Ext.lib.Region(t, r, b, l);
- }
- else {
- return null;
- }
- },
- union: function(region){
- var t = Math.min(this.top, region.top);
- var r = Math.max(this.right, region.right);
- var b = Math.max(this.bottom, region.bottom);
- var l = Math.min(this.left, region.left);
- return new Ext.lib.Region(t, r, b, l);
- },
- constrainTo: function(r){
- this.top = this.top.constrain(r.top, r.bottom);
- this.bottom = this.bottom.constrain(r.top, r.bottom);
- this.left = this.left.constrain(r.left, r.right);
- this.right = this.right.constrain(r.left, r.right);
- return this;
- },
- adjust: function(t, l, b, r){
- this.top += t;
- this.left += l;
- this.right += r;
- this.bottom += b;
- return this;
- }
- };
- Ext.lib.Region.getRegion = function(el){
- var p = Ext.lib.Dom.getXY(el);
- var t = p[1];
- var r = p[0] + el.offsetWidth;
- var b = p[1] + el.offsetHeight;
- var l = p[0];
- return new Ext.lib.Region(t, r, b, l);
- };
- Ext.lib.Point = function(x, y){
- if (Ext.isArray(x)) {
- y = x[1];
- x = x[0];
- }
- this.x = this.right = this.left = this[0] = x;
- this.y = this.top = this.bottom = this[1] = y;
- };
- Ext.lib.Point.prototype = new Ext.lib.Region();
- Ext.lib.Anim = {
- scroll: function(el, args, duration, easing, cb, scope){
- return this.run(el, args, duration, easing, cb, scope, Ext.lib.Scroll);
- },
- motion: function(el, args, duration, easing, cb, scope){
- return this.run(el, args, duration, easing, cb, scope, Ext.lib.Motion);
- },
- color: function(el, args, duration, easing, cb, scope){
- return this.run(el, args, duration, easing, cb, scope, Ext.lib.ColorAnim);
- },
- run: function(el, args, duration, easing, cb, scope, type){
- type = type || Ext.lib.AnimBase;
- if (typeof easing == "string") {
- easing = Ext.lib.Easing[easing];
- }
- var anim = new type(el, args, duration, easing);
- anim.animateX(function(){
- Ext.callback(cb, scope);
- });
- return anim;
- }
- };
- function fly(el){
- if (!libFlyweight) {
- libFlyweight = new Ext.Element.Flyweight();
- }
- libFlyweight.dom = el;
- return libFlyweight;
- }
- if (Ext.isIE) {
- function fnCleanUp(){
- var p = Function.prototype;
- delete p.createSequence;
- delete p.defer;
- delete p.createDelegate;
- delete p.createCallback;
- delete p.createInterceptor;
- window.detachEvent("onunload", fnCleanUp);
- }
- window.attachEvent("onunload", fnCleanUp);
- }
- Ext.lib.AnimBase = function(el, attributes, duration, method){
- if (el) {
- this.init(el, attributes, duration, method);
- }
- };
- Ext.lib.AnimBase.prototype = {
- toString: function(){
- var el = this.getEl();
- var id = el.id || el.tagName;
- return ("Anim " + id);
- },
- patterns: {
- noNegatives: /width|height|opacity|padding/i,
- offsetAttribute: /^((width|height)|(top|left))$/,
- defaultUnit: /width|height|top$|bottom$|left$|right$/i,
- offsetUnit: /\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i
- },
- doMethod: function(attr, start, end){
- return this.method(this.currentFrame, start, end - start, this.totalFrames);
- },
- setAttribute: function(attr, val, unit){
- if (this.patterns.noNegatives.test(attr)) {
- val = (val > 0) ? val : 0;
- }
- Ext.fly(this.getEl(), '_anim').setStyle(attr, val + unit);
- },
- getAttribute: function(attr){
- var el = this.getEl();
- var val = fly(el).getStyle(attr);
- if (val !== 'auto' && !this.patterns.offsetUnit.test(val)) {
- return parseFloat(val);
- }
- var a = this.patterns.offsetAttribute.exec(attr) || [];
- var pos = !!(a[3]);
- var box = !!(a[2]);
- if (box || (fly(el).getStyle('position') == 'absolute' && pos)) {
- val = el['offset' + a[0].charAt(0).toUpperCase() + a[0].substr(1)];
- }
- else {
- val = 0;
- }
- return val;
- },
- getDefaultUnit: function(attr){
- if (this.patterns.defaultUnit.test(attr)) {
- return 'px';
- }
- return '';
- },
- animateX: function(callback, scope){
- var f = function(){
- this.onComplete.removeListener(f);
- if (typeof callback == "function") {
- callback.call(scope || this, this);
- }
- };
- this.onComplete.addListener(f, this);
- this.animate();
- },
- setRuntimeAttribute: function(attr){
- var start;
- var end;
- var attributes = this.attributes;
- this.runtimeAttributes[attr] = {};
- var isset = function(prop){
- return (typeof prop !== 'undefined');
- };
- if (!isset(attributes[attr]['to']) && !isset(attributes[attr]['by'])) {
- return false;
- }
- start = (isset(attributes[attr]['from'])) ? attributes[attr]['from'] : this.getAttribute(attr);
- if (isset(attributes[attr]['to'])) {
- end = attributes[attr]['to'];
- }
- else
- if (isset(attributes[attr]['by'])) {
- if (start.constructor == Array) {
- end = [];
- for (var i = 0, len = start.length; i < len; ++i) {
- end[i] = start[i] + attributes[attr]['by'][i];
- }
- }
- else {
- end = start + attributes[attr]['by'];
- }
- }
- this.runtimeAttributes[attr].start = start;
- this.runtimeAttributes[attr].end = end;
- this.runtimeAttributes[attr].unit = (isset(attributes[attr].unit)) ? attributes[attr]['unit'] : this.getDefaultUnit(attr);
- },
- init: function(el, attributes, duration, method){
- var isAnimated = false;
- var startTime = null;
- var actualFrames = 0;
- el = Ext.getDom(el);
- this.attributes = attributes ||
- {};
- this.duration = duration || 1;
- this.method = method || Ext.lib.Easing.easeNone;
- this.useSeconds = true;
- this.currentFrame = 0;
- this.totalFrames = Ext.lib.AnimMgr.fps;
- this.getEl = function(){
- return el;
- };
- this.isAnimated = function(){
- return isAnimated;
- };
- this.getStartTime = function(){
- return startTime;
- };
- this.runtimeAttributes = {};
- this.animate = function(){
- if (this.isAnimated()) {
- return false;
- }
- this.currentFrame = 0;
- this.totalFrames = (this.useSeconds) ? Math.ceil(Ext.lib.AnimMgr.fps * this.duration) : this.duration;
- Ext.lib.AnimMgr.registerElement(this);
- };
- this.stop = function(finish){
- if (finish) {
- this.currentFrame = this.totalFrames;
- this._onTween.fire();
- }
- Ext.lib.AnimMgr.stop(this);
- };
- var onStart = function(){
- this.onStart.fire();
- this.runtimeAttributes = {};
- for (var attr in this.attributes) {
- this.setRuntimeAttribute(attr);
- }
- isAnimated = true;
- actualFrames = 0;
- startTime = new Date();
- };
- var onTween = function(){
- var data = {
- duration: new Date() - this.getStartTime(),
- currentFrame: this.currentFrame
- };
- data.toString = function(){
- return ('duration: ' + data.duration + ', currentFrame: ' + data.currentFrame);
- };
- this.onTween.fire(data);
- var runtimeAttributes = this.runtimeAttributes;
- for (var attr in runtimeAttributes) {
- this.setAttribute(attr, this.doMethod(attr, runtimeAttributes[attr].start, runtimeAttributes[attr].end), runtimeAttributes[attr].unit);
- }
- actualFrames += 1;
- };
- var onComplete = function(){
- var actual_duration = (new Date() - startTime) / 1000;
- var data = {
- duration: actual_duration,
- frames: actualFrames,
- fps: actualFrames / actual_duration
- };
- data.toString = function(){
- return ('duration: ' + data.duration + ', frames: ' + data.frames + ', fps: ' + data.fps);
- };
- isAnimated = false;
- actualFrames = 0;
- this.onComplete.fire(data);
- };
- this._onStart = new Ext.util.Event(this);
- this.onStart = new Ext.util.Event(this);
- this.onTween = new Ext.util.Event(this);
- this._onTween = new Ext.util.Event(this);
- this.onComplete = new Ext.util.Event(this);
- this._onComplete = new Ext.util.Event(this);
- this._onStart.addListener(onStart);
- this._onTween.addListener(onTween);
- this._onComplete.addListener(onComplete);
- }
- };
- Ext.lib.AnimMgr = new function(){
- var thread = null;
- var queue = [];
- var tweenCount = 0;
- this.fps = 1000;
- this.delay = 1;
- this.registerElement = function(tween){
- queue[queue.length] = tween;
- tweenCount += 1;
- tween._onStart.fire();
- this.start();
- };
- this.unRegister = function(tween, index){
- tween._onComplete.fire();
- index = index || getIndex(tween);
- if (index != -1) {
- queue.splice(index, 1);
- }
- tweenCount -= 1;
- if (tweenCount <= 0) {
- this.stop();
- }
- };
- this.start = function(){
- if (thread === null) {
- thread = setInterval(this.run, this.delay);
- }
- };
- this.stop = function(tween){
- if (!tween) {
- clearInterval(thread);
- for (var i = 0, len = queue.length; i < len; ++i) {
- if (queue[0].isAnimated()) {
- this.unRegister(queue[0], 0);
- }
- }
- queue = [];
- thread = null;
- tweenCount = 0;
- }
- else {
- this.unRegister(tween);
- }
- };
- this.run = function(){
- for (var i = 0, len = queue.length; i < len; ++i) {
- var tween = queue[i];
- if (!tween || !tween.isAnimated()) {
- continue;
- }
- if (tween.currentFrame < tween.totalFrames || tween.totalFrames === null) {
- tween.currentFrame += 1;
- if (tween.useSeconds) {
- correctFrame(tween);
- }
- tween._onTween.fire();
- }
- else {
- Ext.lib.AnimMgr.stop(tween, i);
- }
- }
- };
- var getIndex = function(anim){
- for (var i = 0, len = queue.length; i < len; ++i) {
- if (queue[i] == anim) {
- return i;
- }
- }
- return -1;
- };
- var correctFrame = function(tween){
- var frames = tween.totalFrames;
- var frame = tween.currentFrame;
- var expected = (tween.currentFrame * tween.duration * 1000 / tween.totalFrames);
- var elapsed = (new Date() - tween.getStartTime());
- var tweak = 0;
- if (elapsed < tween.duration * 1000) {
- tweak = Math.round((elapsed / expected - 1) * tween.currentFrame);
- }
- else {
- tweak = frames - (frame + 1);
- }
- if (tweak > 0 && isFinite(tweak)) {
- if (tween.currentFrame + tweak >= frames) {
- tweak = frames - (frame + 1);
- }
- tween.currentFrame += tweak;
- }
- };
- };
- Ext.lib.Bezier = new function(){
- this.getPosition = function(points, t){
- var n = points.length;
- var tmp = [];
- for (var i = 0; i < n; ++i) {
- tmp[i] = [points[i][0], points[i][1]];
- }
- for (var j = 1; j < n; ++j) {
- for (i = 0; i < n - j; ++i) {
- tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];
- tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1];
- }
- }
- return [tmp[0][0], tmp[0][1]];
- };
- };
- (function(){
- Ext.lib.ColorAnim = function(el, attributes, duration, method){
- Ext.lib.ColorAnim.superclass.constructor.call(this, el, attributes, duration, method);
- };
- Ext.extend(Ext.lib.ColorAnim, Ext.lib.AnimBase);
- var Y = Ext.lib;
- var superclass = Y.ColorAnim.superclass;
- var proto = Y.ColorAnim.prototype;
- proto.toString = function(){
- var el = this.getEl();
- var id = el.id || el.tagName;
- return ("ColorAnim " + id);
- };
- proto.patterns.color = /color$/i;
- proto.patterns.rgb = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;
- proto.patterns.hex = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;
- proto.patterns.hex3 = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;
- proto.patterns.transparent = /^transparent|rgba\(0, 0, 0, 0\)$/;
- proto.parseColor = function(s){
- if (s.length == 3) {
- return s;
- }
- var c = this.patterns.hex.exec(s);
- if (c && c.length == 4) {
- return [parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16)];
- }
- c = this.patterns.rgb.exec(s);
- if (c && c.length == 4) {
- return [parseInt(c[1], 10), parseInt(c[2], 10), parseInt(c[3], 10)];
- }
- c = this.patterns.hex3.exec(s);
- if (c && c.length == 4) {
- return [parseInt(c[1] + c[1], 16), parseInt(c[2] + c[2], 16), parseInt(c[3] + c[3], 16)];
- }
- return null;
- };
- proto.getAttribute = function(attr){
- var el = this.getEl();
- if (this.patterns.color.test(attr)) {
- var val = fly(el).getStyle(attr);
- if (this.patterns.transparent.test(val)) {
- var parent = el.parentNode;
- val = fly(parent).getStyle(attr);
- while (parent && this.patterns.transparent.test(val)) {
- parent = parent.parentNode;
- val = fly(parent).getStyle(attr);
- if (parent.tagName.toUpperCase() == 'HTML') {
- val = '#fff';
- }
- }
- }
- }
- else {
- val = superclass.getAttribute.call(this, attr);
- }
- return val;
- };
- proto.doMethod = function(attr, start, end){
- var val;
- if (this.patterns.color.test(attr)) {
- val = [];
- for (var i = 0, len = start.length; i < len; ++i) {
- val[i] = superclass.doMethod.call(this, attr, start[i], end[i]);
- }
- val = 'rgb(' + Math.floor(val[0]) + ',' + Math.floor(val[1]) + ',' + Math.floor(val[2]) + ')';
- }
- else {
- val = superclass.doMethod.call(this, attr, start, end);
- }
- return val;
- };
- proto.setRuntimeAttribute = function(attr){
- superclass.setRuntimeAttribute.call(this, attr);
- if (this.patterns.color.test(attr)) {
- var attributes = this.attributes;
- var start = this.parseColor(this.runtimeAttributes[attr].start);
- var end = this.parseColor(this.runtimeAttributes[attr].end);
- if (typeof attributes[attr]['to'] === 'undefined' && typeof attributes[attr]['by'] !== 'undefined') {
- end = this.parseColor(attributes[attr].by);
- for (var i = 0, len = start.length; i < len; ++i) {
- end[i] = start[i] + end[i];
- }
- }
- this.runtimeAttributes[attr].start = start;
- this.runtimeAttributes[attr].end = end;
- }
- };
- })();
- Ext.lib.Easing = {
- easeNone: function(t, b, c, d){
- return c * t / d + b;
- },
- easeIn: function(t, b, c, d){
- return c * (t /= d) * t + b;
- },
- easeOut: function(t, b, c, d){
- return -c * (t /= d) * (t - 2) + b;
- },
- easeBoth: function(t, b, c, d){
- if ((t /= d / 2) < 1) {
- return c / 2 * t * t + b;
- }
- return -c / 2 * ((--t) * (t - 2) - 1) + b;
- },
- easeInStrong: function(t, b, c, d){
- return c * (t /= d) * t * t * t + b;
- },
- easeOutStrong: function(t, b, c, d){
- return -c * ((t = t / d - 1) * t * t * t - 1) + b;
- },
- easeBothStrong: function(t, b, c, d){
- if ((t /= d / 2) < 1) {
- return c / 2 * t * t * t * t + b;
- }
- return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
- },
- elasticIn: function(t, b, c, d, a, p){
- if (t == 0) {
- return b;
- }
- if ((t /= d) == 1) {
- return b + c;
- }
- if (!p) {
- p = d * .3;
- }
- if (!a || a < Math.abs(c)) {
- a = c;
- var s = p / 4;
- }
- else {
- var s = p / (2 * Math.PI) * Math.asin(c / a);
- }
- return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
- },
- elasticOut: function(t, b, c, d, a, p){
- if (t == 0) {
- return b;
- }
- if ((t /= d) == 1) {
- return b + c;
- }
- if (!p) {
- p = d * .3;
- }
- if (!a || a < Math.abs(c)) {
- a = c;
- var s = p / 4;
- }
- else {
- var s = p / (2 * Math.PI) * Math.asin(c / a);
- }
- return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
- },
- elasticBoth: function(t, b, c, d, a, p){
- if (t == 0) {
- return b;
- }
- if ((t /= d / 2) == 2) {
- return b + c;
- }
- if (!p) {
- p = d * (.3 * 1.5);
- }
- if (!a || a < Math.abs(c)) {
- a = c;
- var s = p / 4;
- }
- else {
- var s = p / (2 * Math.PI) * Math.asin(c / a);
- }
- if (t < 1) {
- return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
- }
- return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
- },
- backIn: function(t, b, c, d, s){
- if (typeof s == 'undefined') {
- s = 1.70158;
- }
- return c * (t /= d) * t * ((s + 1) * t - s) + b;
- },
- backOut: function(t, b, c, d, s){
- if (typeof s == 'undefined') {
- s = 1.70158;
- }
- return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
- },
- backBoth: function(t, b, c, d, s){
- if (typeof s == 'undefined') {
- s = 1.70158;
- }
- if ((t /= d / 2) < 1) {
- return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
- }
- return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
- },
- bounceIn: function(t, b, c, d){
- return c - Ext.lib.Easing.bounceOut(d - t, 0, c, d) + b;
- },
- bounceOut: function(t, b, c, d){
- if ((t /= d) < (1 / 2.75)) {
- return c * (7.5625 * t * t) + b;
- }
- else
- if (t < (2 / 2.75)) {
- return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
- }
- else
- if (t < (2.5 / 2.75)) {
- return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
- }
- return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
- },
- bounceBoth: function(t, b, c, d){
- if (t < d / 2) {
- return Ext.lib.Easing.bounceIn(t * 2, 0, c, d) * .5 + b;
- }
- return Ext.lib.Easing.bounceOut(t * 2 - d, 0, c, d) * .5 + c * .5 + b;
- }
- };
- (function(){
- Ext.lib.Motion = function(el, attributes, duration, method){
- if (el) {
- Ext.lib.Motion.superclass.constructor.call(this, el, attributes, duration, method);
- }
- };
- Ext.extend(Ext.lib.Motion, Ext.lib.ColorAnim);
- var Y = Ext.lib;
- var superclass = Y.Motion.superclass;
- var proto = Y.Motion.prototype;
- proto.toString = function(){
- var el = this.getEl();
- var id = el.id || el.tagName;
- return ("Motion " + id);
- };
- proto.patterns.points = /^points$/i;
- proto.setAttribute = function(attr, val, unit){
- if (this.patterns.points.test(attr)) {
- unit = unit || 'px';
- superclass.setAttribute.call(this, 'left', val[0], unit);
- superclass.setAttribute.call(this, 'top', val[1], unit);
- }
- else {
- superclass.setAttribute.call(this, attr, val, unit);
- }
- };
- proto.getAttribute = function(attr){
- if (this.patterns.points.test(attr)) {
- var val = [superclass.getAttribute.call(this, 'left'), superclass.getAttribute.call(this, 'top')];
- }
- else {
- val = superclass.getAttribute.call(this, attr);
- }
- return val;
- };
- proto.doMethod = function(attr, start, end){
- var val = null;
- if (this.patterns.points.test(attr)) {
- var t = this.method(this.currentFrame, 0, 100, this.totalFrames) / 100;
- val = Y.Bezier.getPosition(this.runtimeAttributes[attr], t);
- }
- else {
- val = superclass.doMethod.call(this, attr, start, end);
- }
- return val;
- };
- proto.setRuntimeAttribute = function(attr){
- if (this.patterns.points.test(attr)) {
- var el = this.getEl();
- var attributes = this.attributes;
- var start;
- var control = attributes['points']['control'] || [];
- var end;
- var i, len;
- if (control.length > 0 && !Ext.isArray(control[0])) {
- control = [control];
- }
- else {
- var tmp = [];
- for (i = 0, len = control.length; i < len; ++i) {
- tmp[i] = control[i];
- }
- control = tmp;
- }
- Ext.fly(el, '_anim').position();
- if (isset(attributes['points']['from'])) {
- Ext.lib.Dom.setXY(el, attributes['points']['from']);
- }
- else {
- Ext.lib.Dom.setXY(el, Ext.lib.Dom.getXY(el));
- }
- start = this.getAttribute('points');
- if (isset(attributes['points']['to'])) {
- end = translateValues.call(this, attributes['points']['to'], start);
- var pageXY = Ext.lib.Dom.getXY(this.getEl());
- for (i = 0, len = control.length; i < len; ++i) {
- control[i] = translateValues.call(this, control[i], start);
- }
- }
- else
- if (isset(attributes['points']['by'])) {
- end = [start[0] + attributes['points']['by'][0], start[1] + attributes['points']['by'][1]];
- for (i = 0, len = control.length; i < len; ++i) {
- control[i] = [start[0] + control[i][0], start[1] + control[i][1]];
- }
- }
- this.runtimeAttributes[attr] = [start];
- if (control.length > 0) {
- this.runtimeAttributes[attr] = this.runtimeAttributes[attr].concat(control);
- }
- this.runtimeAttributes[attr][this.runtimeAttributes[attr].length] = end;
- }
- else {
- superclass.setRuntimeAttribute.call(this, attr);
- }
- };
- var translateValues = function(val, start){
- var pageXY = Ext.lib.Dom.getXY(this.getEl());
- val = [val[0] - pageXY[0] + start[0], val[1] - pageXY[1] + start[1]];
- return val;
- };
- var isset = function(prop){
- return (typeof prop !== 'undefined');
- };
- })();
- (function(){
- Ext.lib.Scroll = function(el, attributes, duration, method){
- if (el) {
- Ext.lib.Scroll.superclass.constructor.call(this, el, attributes, duration, method);
- }
- };
- Ext.extend(Ext.lib.Scroll, Ext.lib.ColorAnim);
- var Y = Ext.lib;
- var superclass = Y.Scroll.superclass;
- var proto = Y.Scroll.prototype;
- proto.toString = function(){
- var el = this.getEl();
- var id = el.id || el.tagName;
- return ("Scroll " + id);
- };
- proto.doMethod = function(attr, start, end){
- var val = null;
- if (attr == 'scroll') {
- val = [this.method(this.currentFrame, start[0], end[0] - start[0], this.totalFrames), this.method(this.currentFrame, start[1], end[1] - start[1], this.totalFrames)];
- }
- else {
- val = superclass.doMethod.call(this, attr, start, end);
- }
- return val;
- };
- proto.getAttribute = function(attr){
- var val = null;
- var el = this.getEl();
- if (attr == 'scroll') {
- val = [el.scrollLeft, el.scrollTop];
- }
- else {
- val = superclass.getAttribute.call(this, attr);
- }
- return val;
- };
- proto.setAttribute = function(attr, val, unit){
- var el = this.getEl();
- if (attr == 'scroll') {
- el.scrollLeft = val[0];
- el.scrollTop = val[1];
- }
- else {
- superclass.setAttribute.call(this, attr, val, unit);
- }
- };
- })();
-})();
+
+Ext={version:'3.0'};window["undefined"]=window["undefined"];Ext.apply=function(o,c,defaults){if(defaults){Ext.apply(o,defaults);}
+if(o&&c&&typeof c=='object'){for(var p in c){o[p]=c[p];}}
+return o;};(function(){var idSeed=0;var ua=navigator.userAgent.toLowerCase();var isStrict=document.compatMode=="CSS1Compat",isOpera=ua.indexOf("opera")>-1,isChrome=ua.indexOf("chrome")>-1,isSafari=!isChrome&&(/webkit|khtml/).test(ua),isSafari3=isSafari&&ua.indexOf('webkit/5')!=-1,isIE=!isOpera&&ua.indexOf("msie")>-1,isIE7=!isOpera&&ua.indexOf("msie 7")>-1,isIE8=!isOpera&&ua.indexOf("msie 8")>-1,isGecko=!isSafari&&!isChrome&&ua.indexOf("gecko")>-1,isGecko3=isGecko&&ua.indexOf("rv:1.9")>-1,isBorderBox=isIE&&!isStrict,isWindows=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),isMac=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),isAir=(ua.indexOf("adobeair")!=-1),isLinux=(ua.indexOf("linux")!=-1),isSecure=window.location.href.toLowerCase().indexOf("https")===0;if(isIE&&!isIE7){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}
+Ext.apply(Ext,{isStrict:isStrict,isSecure:isSecure,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http:/"+"/extjs.com/s.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p];}}}
+return o;},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o);});return;}
+var cache={};for(var b in o){var parts=b.split('@');if(parts[1]){var s=parts[0];if(!cache[s]){cache[s]=Ext.select(s);}
+cache[s].on(parts[1],o[b]);}}
+cache=null;},id:function(el,prefix){prefix=prefix||"ext-gen";el=Ext.getDom(el);var id=prefix+(++idSeed);return el?(el.id?el.id:(el.id=id)):id;},extend:function(){var io=function(o){for(var m in o){this[m]=o[m];}};var oc=Object.prototype.constructor;return function(sb,sp,overrides){if(typeof sp=='object'){overrides=sp;sp=sb;sb=overrides.constructor!=oc?overrides.constructor:function(){sp.apply(this,arguments);};}
+var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==oc){spp.constructor=sp;}
+sb.override=function(o){Ext.override(sb,o);};sbp.superclass=sbp.supr=(function(){return spp;});sbp.override=io;Ext.override(sb,overrides);sb.extend=function(o){Ext.extend(sb,o);};return sb;};}(),extendX:function(supr,fn){return Ext.extend(supr,fn(supr.prototype));},override:function(origclass,overrides){if(overrides){var p=origclass.prototype;for(var method in overrides){p[method]=overrides[method];}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i<a.length;++i){d=a[i].split(".");rt=d[0];eval('if (typeof '+rt+' == "undefined"){'+rt+' = {};} o = '+rt+';');for(j=1;j<d.length;++j){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}},urlEncode:function(o){if(!o){return"";}
+var buf=[];for(var key in o){var ov=o[key],k=encodeURIComponent(key);var type=typeof ov;if(type=='undefined'){buf.push(k,"=&");}else if(type!="function"&&type!="object"){buf.push(k,"=",encodeURIComponent(ov),"&");}else if(Ext.isArray(ov)){if(ov.length){for(var i=0,len=ov.length;i<len;i++){buf.push(k,"=",encodeURIComponent(ov[i]===undefined?'':ov[i]),"&");}}else{buf.push(k,"=&");}}}
+buf.pop();return buf.join("");},urlDecode:function(string,overwrite){if(!string||!string.length){return{};}
+var obj={};var pairs=string.split('&');var pair,name,value;for(var i=0,len=pairs.length;i<len;i++){pair=pairs[i].split('=');name=decodeURIComponent(pair[0]);value=decodeURIComponent(pair[1]);if(overwrite!==true){if(typeof obj[name]=="undefined"){obj[name]=value;}else if(typeof obj[name]=="string"){obj[name]=[obj[name]];obj[name].push(value);}else{obj[name].push(value);}}else{obj[name]=value;}}
+return obj;},each:function(array,fn,scope){if(typeof array.length=="undefined"||typeof array=="string"){array=[array];}
+for(var i=0,len=array.length;i<len;i++){if(fn.call(scope||array[i],array[i],i,array)===false){return i;};}},combine:function(){var as=arguments,l=as.length,r=[];for(var i=0;i<l;i++){var a=as[i];if(Ext.isArray(a)){r=r.concat(a);}else if(a.length!==undefined&&!a.substr){r=r.concat(Array.prototype.slice.call(a,0));}else{r.push(a);}}
+return r;},escapeRe:function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");},callback:function(cb,scope,args,delay){if(typeof cb=="function"){if(delay){cb.defer(delay,scope,args||[]);}else{cb.apply(scope,args||[]);}}},getDom:function(el){if(!el||!document){return null;}
+return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){if(typeof v!='number'||isNaN(v)){return defaultValue;}
+return v;},destroy:function(){for(var i=0,a=arguments,len=a.length;i<len;i++){var as=a[i];if(as){if(typeof as.destroy=='function'){as.destroy();}
+else if(as.dom){as.removeAllListeners();as.remove();}}}},destroyMembers:function(o,arg1,arg2,etc){for(var i=1,a=arguments,len=a.length;i<len;i++){Ext.destroy(o[a[i]]);delete o[a[i]];}},removeNode:isIE?function(){var d;return function(n){if(n&&n.tagName!='BODY'){d=d||document.createElement('div');d.appendChild(n);d.innerHTML='';}}}():function(n){if(n&&n.parentNode&&n.tagName!='BODY'){n.parentNode.removeChild(n);}},type:function(o){if(o===undefined||o===null){return false;}
+if(o.htmlElement){return'element';}
+var t=typeof o;if(t=='object'&&o.nodeName){switch(o.nodeType){case 1:return'element';case 3:return(/\S/).test(o.nodeValue)?'textnode':'whitespace';}}
+if(t=='object'||t=='function'){switch(o.constructor){case Array:return'array';case RegExp:return'regexp';}
+if(typeof o.length=='number'&&typeof o.item=='function'){return'nodelist';}}
+return t;},isEmpty:function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==='':false);},value:function(v,defaultValue,allowBlank){return Ext.isEmpty(v,allowBlank)?defaultValue:v;},isArray:function(v){return v&&typeof v.length=='number'&&typeof v.splice=='function';},isDate:function(v){return v&&typeof v.getFullYear=='function';},copyTo:function(dest,source,names){if(typeof names=='string'){names=names.split(/[,;\s]/);}
+for(var i=0,len=names.length;i<len;i++){var n=names[i];if(source.hasOwnProperty(n)){dest[n]=source[n];}}
+return dest;},intercept:function(o,name,fn,scope){o[name]=o[name].createInterceptor(fn,scope);},sequence:function(o,name,fn,scope){o[name]=o[name].createSequence(fn,scope);},isOpera:isOpera,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7&&!isIE8,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux","Ext.chart","Ext.direct");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
+return method.apply(obj||window,callArgs);};},defer:function(millis,obj,args,appendArgs){var fn=this.createDelegate(obj,args,appendArgs);if(millis){return setTimeout(fn,millis);}
+fn();return 0;},createSequence:function(fcn,scope){if(typeof fcn!="function"){return this;}
+var method=this;return function(){var retval=method.apply(this||window,arguments);fcn.apply(scope||this||window,arguments);return retval;};},createInterceptor:function(fcn,scope){if(typeof fcn!="function"){return this;}
+var method=this;return function(){fcn.target=this;fcn.method=method;if(fcn.apply(scope||this||window,arguments)===false){return;}
+return method.apply(this||window,arguments);};}});Ext.applyIf(String,{escape:function(string){return string.replace(/('|\\)/g,"\\$1");},leftPad:function(val,size,ch){var result=new String(val);if(!ch){ch=" ";}
+while(result.length<size){result=ch+result;}
+return result.toString();},format:function(format){var args=Array.prototype.slice.call(arguments,1);return format.replace(/\{(\d+)\}/g,function(m,i){return args[i];});}});String.prototype.toggle=function(value,other){return this==value?other:value;};String.prototype.trim=function(){var re=/^\s+|\s+$/g;return function(){return this.replace(re,"");};}();Ext.applyIf(Number.prototype,{constrain:function(min,max){return Math.min(Math.max(this,min),max);}});Ext.applyIf(Array.prototype,{indexOf:function(o){for(var i=0,len=this.length;i<len;i++){if(this[i]==o)return i;}
+return-1;},remove:function(o){var index=this.indexOf(o);if(index!=-1){this.splice(index,1);}
+return this;}});Date.prototype.getElapsed=function(date){return Math.abs((date||new Date()).getTime()-this.getTime());};
+
+(function(){var libFlyweight;Ext.lib.Dom={getViewWidth:function(full){return full?this.getDocumentWidth():this.getViewportWidth();},getViewHeight:function(full){return full?this.getDocumentHeight():this.getViewportHeight();},getDocumentHeight:function(){var scrollHeight=(document.compatMode!="CSS1Compat")?document.body.scrollHeight:document.documentElement.scrollHeight;return Math.max(scrollHeight,this.getViewportHeight());},getDocumentWidth:function(){var scrollWidth=(document.compatMode!="CSS1Compat")?document.body.scrollWidth:document.documentElement.scrollWidth;return Math.max(scrollWidth,this.getViewportWidth());},getViewportHeight:function(){if(Ext.isIE){return Ext.isStrict?document.documentElement.clientHeight:document.body.clientHeight;}else{return self.innerHeight;}},getViewportWidth:function(){if(!Ext.isStrict&&!Ext.isOpera){return document.body.clientWidth;}
+else if(Ext.isIE){return document.documentElement.clientWidth;}else{return self.innerWidth;}},isAncestor:function(p,c){p=Ext.getDom(p);c=Ext.getDom(c);if(!p||!c){return false;}
+if(p.contains&&!Ext.isSafari){return p.contains(c);}else if(p.compareDocumentPosition){return!!(p.compareDocumentPosition(c)&16);}else{var parent=c.parentNode;while(parent){if(parent==p){return true;}
+else if(!parent.tagName||parent.tagName.toUpperCase()=="HTML"){return false;}
+parent=parent.parentNode;}
+return false;}},getRegion:function(el){return Ext.lib.Region.getRegion(el);},getY:function(el){return this.getXY(el)[1];},getX:function(el){return this.getXY(el)[0];},getXY:function(el){var p,pe,b,scroll,bd=(document.body||document.documentElement);el=Ext.getDom(el);if(el==bd){return[0,0];}
+if(el.getBoundingClientRect){b=el.getBoundingClientRect();scroll=fly(document).getScroll();return[b.left+scroll.left,b.top+scroll.top];}
+var x=0,y=0;p=el;var hasAbsolute=fly(el).getStyle("position")=="absolute";while(p){x+=p.offsetLeft;y+=p.offsetTop;if(!hasAbsolute&&fly(p).getStyle("position")=="absolute"){hasAbsolute=true;}
+if(Ext.isGecko){pe=fly(p);var bt=parseInt(pe.getStyle("borderTopWidth"),10)||0;var bl=parseInt(pe.getStyle("borderLeftWidth"),10)||0;x+=bl;y+=bt;if(p!=el&&pe.getStyle('overflow')!='visible'){x+=bl;y+=bt;}}
+p=p.offsetParent;}
+if(Ext.isSafari&&hasAbsolute){x-=bd.offsetLeft;y-=bd.offsetTop;}
+if(Ext.isGecko&&!hasAbsolute){var dbd=fly(bd);x+=parseInt(dbd.getStyle("borderLeftWidth"),10)||0;y+=parseInt(dbd.getStyle("borderTopWidth"),10)||0;}
+p=el.parentNode;while(p&&p!=bd){if(!Ext.isOpera||(p.tagName!='TR'&&fly(p).getStyle("display")!="inline")){x-=p.scrollLeft;y-=p.scrollTop;}
+p=p.parentNode;}
+return[x,y];},setXY:function(el,xy){el=Ext.fly(el,'_setXY');el.position();var pts=el.translatePoints(xy);if(xy[0]!==false){el.dom.style.left=pts.left+"px";}
+if(xy[1]!==false){el.dom.style.top=pts.top+"px";}},setX:function(el,x){this.setXY(el,[x,false]);},setY:function(el,y){this.setXY(el,[false,y]);}};Ext.lib.Event=function(){var loadComplete=false;var listeners=[];var unloadListeners=[];var retryCount=0;var onAvailStack=[];return{POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,_interval:null,startInterval:function(){if(!this._interval){var self=this;var callback=function(){self._tryPreloadAttach();};this._interval=setInterval(callback,this.POLL_INTERVAL);}},onAvailable:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:false});retryCount=this.POLL_RETRYS;this.startInterval();},addListener:function(el,eventName,fn){el=Ext.getDom(el);if(!el||!fn){return false;}
+if("unload"==eventName){unloadListeners[unloadListeners.length]=[el,eventName,fn];return true;}
+var li=[el,eventName,fn,fn];var index=listeners.length;listeners[index]=li;this.doAdd(el,eventName,fn,false);return true;},removeListener:function(el,eventName,fn){var i,len;el=Ext.getDom(el);if(!fn){return this.purgeElement(el,false,eventName);}
+if("unload"==eventName){for(i=0,len=unloadListeners.length;i<len;i++){var li=unloadListeners[i];if(li&&li[0]==el&&li[1]==eventName&&li[2]==fn){unloadListeners.splice(i,1);return true;}}
+return false;}
+var cacheItem=null;var index=arguments[3];if("undefined"==typeof index){index=this._getCacheIndex(el,eventName,fn);}
+if(index>=0){cacheItem=listeners[index];}
+if(!el||!cacheItem){return false;}
+this.doRemove(el,eventName,cacheItem[this.WFN],false);delete listeners[index][this.WFN];delete listeners[index][this.FN];listeners.splice(index,1);return true;},getTarget:function(ev){ev=ev.browserEvent||ev;var t=ev.target||ev.srcElement;return this.resolveTextNode(t);},resolveTextNode:function(node){if(Ext.isSafari&&node&&3==node.nodeType){return node.parentNode;}else{return node;}},getPageX:function(ev){ev=ev.browserEvent||ev;var x=ev.pageX;if(!x&&0!==x){x=ev.clientX||0;if(Ext.isIE){x+=this.getScroll()[1];}}
+return x;},getPageY:function(ev){ev=ev.browserEvent||ev;var y=ev.pageY;if(!y&&0!==y){y=ev.clientY||0;if(Ext.isIE){y+=this.getScroll()[0];}}
+return y;},getXY:function(ev){ev=ev.browserEvent||ev;return[this.getPageX(ev),this.getPageY(ev)];},getRelatedTarget:function(ev){ev=ev.browserEvent||ev;var t=ev.relatedTarget;if(!t){if(ev.type=="mouseout"){t=ev.toElement;}else if(ev.type=="mouseover"){t=ev.fromElement;}}
+return this.resolveTextNode(t);},getTime:function(ev){ev=ev.browserEvent||ev;if(!ev.time){var t=new Date().getTime();try{ev.time=t;}catch(ex){return t;}}
+return ev.time;},stopEvent:function(ev){this.stopPropagation(ev);this.preventDefault(ev);},stopPropagation:function(ev){ev=ev.browserEvent||ev;if(ev.stopPropagation){ev.stopPropagation();}else{ev.cancelBubble=true;}},preventDefault:function(ev){ev=ev.browserEvent||ev;if(ev.preventDefault){ev.preventDefault();}else{ev.returnValue=false;}},getEvent:function(e){var ev=e||window.event;if(!ev){var c=this.getEvent.caller;while(c){ev=c.arguments[0];if(ev&&Event==ev.constructor){break;}
+c=c.caller;}}
+return ev;},getCharCode:function(ev){ev=ev.browserEvent||ev;return ev.charCode||ev.keyCode||0;},_getCacheIndex:function(el,eventName,fn){for(var i=0,len=listeners.length;i<len;++i){var li=listeners[i];if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==eventName){return i;}}
+return-1;},elCache:{},getEl:function(id){return document.getElementById(id);},clearCache:function(){},_load:function(e){loadComplete=true;var EU=Ext.lib.Event;if(Ext.isIE){EU.doRemove(window,"load",EU._load);}},_tryPreloadAttach:function(){if(this.locked){return false;}
+this.locked=true;var tryAgain=!loadComplete;if(!tryAgain){tryAgain=(retryCount>0);}
+var notAvail=[];for(var i=0,len=onAvailStack.length;i<len;++i){var item=onAvailStack[i];if(item){var el=this.getEl(item.id);if(el){if(!item.checkReady||loadComplete||el.nextSibling||(document&&document.body)){var scope=el;if(item.override){if(item.override===true){scope=item.obj;}else{scope=item.override;}}
+item.fn.call(scope,item.obj);onAvailStack[i]=null;}}else{notAvail.push(item);}}}
+retryCount=(notAvail.length===0)?0:retryCount-1;if(tryAgain){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}
+this.locked=false;return true;},purgeElement:function(el,recurse,eventName){var elListeners=this.getListeners(el,eventName);if(elListeners){for(var i=0,len=elListeners.length;i<len;++i){var l=elListeners[i];this.removeListener(el,l.type,l.fn);}}
+if(recurse&&el&&el.childNodes){for(i=0,len=el.childNodes.length;i<len;++i){this.purgeElement(el.childNodes[i],recurse,eventName);}}},getListeners:function(el,eventName){var results=[],searchLists;if(!eventName){searchLists=[listeners,unloadListeners];}else if(eventName=="unload"){searchLists=[unloadListeners];}else{searchLists=[listeners];}
+for(var j=0;j<searchLists.length;++j){var searchList=searchLists[j];if(searchList&&searchList.length>0){for(var i=0,len=searchList.length;i<len;++i){var l=searchList[i];if(l&&l[this.EL]===el&&(!eventName||eventName===l[this.TYPE])){results.push({type:l[this.TYPE],fn:l[this.FN],obj:l[this.OBJ],adjust:l[this.ADJ_SCOPE],index:i});}}}}
+return(results.length)?results:null;},_unload:function(e){var EU=Ext.lib.Event,i,j,l,len,index;for(i=0,len=unloadListeners.length;i<len;++i){l=unloadListeners[i];if(l){var scope=window;if(l[EU.ADJ_SCOPE]){if(l[EU.ADJ_SCOPE]===true){scope=l[EU.OBJ];}else{scope=l[EU.ADJ_SCOPE];}}
+l[EU.FN].call(scope,EU.getEvent(e),l[EU.OBJ]);unloadListeners[i]=null;l=null;scope=null;}}
+unloadListeners=null;if(listeners&&listeners.length>0){j=listeners.length;while(j){index=j-1;l=listeners[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);}
+j=j-1;}
+l=null;EU.clearCache();}
+EU.doRemove(window,"unload",EU._unload);},getScroll:function(){var dd=document.documentElement,db=document.body;if(dd&&(dd.scrollTop||dd.scrollLeft)){return[dd.scrollTop,dd.scrollLeft];}else if(db){return[db.scrollTop,db.scrollLeft];}else{return[0,0];}},doAdd:function(){if(window.addEventListener){return function(el,eventName,fn,capture){el.addEventListener(eventName,fn,(capture));};}else if(window.attachEvent){return function(el,eventName,fn,capture){el.attachEvent("on"+eventName,fn);};}else{return function(){};}}(),doRemove:function(){if(window.removeEventListener){return function(el,eventName,fn,capture){el.removeEventListener(eventName,fn,(capture));};}else if(window.detachEvent){return function(el,eventName,fn){el.detachEvent("on"+eventName,fn);};}else{return function(){};}}()};}();var E=Ext.lib.Event;E.on=E.addListener;E.un=E.removeListener;if(document&&document.body){E._load();}else{E.doAdd(window,"load",E._load);}
+E.doAdd(window,"unload",E._unload);E._tryPreloadAttach();Ext.lib.Ajax={request:function(method,uri,cb,data,options){if(options){var hs=options.headers;if(hs){for(var h in hs){if(hs.hasOwnProperty(h)){this.initHeader(h,hs[h],false);}}}
+if(options.xmlData){if(!hs||!hs['Content-Type']){this.initHeader('Content-Type','text/xml',false);}
+method=(method?method:(options.method?options.method:'POST'));data=options.xmlData;}else if(options.jsonData){if(!hs||!hs['Content-Type']){this.initHeader('Content-Type','application/json',false);}
+method=(method?method:(options.method?options.method:'POST'));data=typeof options.jsonData=='object'?Ext.encode(options.jsonData):options.jsonData;}}
+return this.asyncRequest(method,uri,cb,data);},serializeForm:function(form){if(typeof form=='string'){form=(document.getElementById(form)||document.forms[form]);}
+var el,name,val,disabled,data='',hasSubmit=false;for(var i=0;i<form.elements.length;i++){el=form.elements[i];disabled=form.elements[i].disabled;name=form.elements[i].name;val=form.elements[i].value;if(!disabled&&name){switch(el.type)
+{case'select-one':case'select-multiple':for(var j=0;j<el.options.length;j++){if(el.options[j].selected){if(Ext.isIE){data+=encodeURIComponent(name)+'='+encodeURIComponent(el.options[j].attributes['value'].specified?el.options[j].value:el.options[j].text)+'&';}
+else{data+=encodeURIComponent(name)+'='+encodeURIComponent(el.options[j].hasAttribute('value')?el.options[j].value:el.options[j].text)+'&';}}}
+break;case'radio':case'checkbox':if(el.checked){data+=encodeURIComponent(name)+'='+encodeURIComponent(val)+'&';}
+break;case'file':case undefined:case'reset':case'button':break;case'submit':if(!hasSubmit){data+=encodeURIComponent(name)+'='+encodeURIComponent(val)+'&';hasSubmit=true;}
+break;default:data+=encodeURIComponent(name)+'='+encodeURIComponent(val)+'&';break;}}}
+data=data.substr(0,data.length-1);return data;},headers:{},hasHeaders:false,useDefaultHeader:true,defaultPostHeader:'application/x-www-form-urlencoded; charset=UTF-8',useDefaultXhrHeader:true,defaultXhrHeader:'XMLHttpRequest',hasDefaultHeaders:true,defaultHeaders:{},poll:{},timeout:{},pollInterval:50,transactionId:0,setProgId:function(id)
+{this.activeX.unshift(id);},setDefaultPostHeader:function(b)
+{this.useDefaultHeader=b;},setDefaultXhrHeader:function(b)
+{this.useDefaultXhrHeader=b;},setPollingInterval:function(i)
+{if(typeof i=='number'&&isFinite(i)){this.pollInterval=i;}},createXhrObject:function(transactionId)
+{var obj,http;try
+{http=new XMLHttpRequest();obj={conn:http,tId:transactionId};}
+catch(e)
+{for(var i=0;i<this.activeX.length;++i){try
+{http=new ActiveXObject(this.activeX[i]);obj={conn:http,tId:transactionId};break;}
+catch(e){}}}
+finally
+{return obj;}},getConnectionObject:function()
+{var o;var tId=this.transactionId;try
+{o=this.createXhrObject(tId);if(o){this.transactionId++;}}
+catch(e){}
+finally
+{return o;}},asyncRequest:function(method,uri,callback,postData)
+{var o=this.getConnectionObject();if(!o){return null;}
+else{o.conn.open(method,uri,true);if(this.useDefaultXhrHeader){if(!this.defaultHeaders['X-Requested-With']){this.initHeader('X-Requested-With',this.defaultXhrHeader,true);}}
+if(postData&&this.useDefaultHeader&&(!this.hasHeaders||!this.headers['Content-Type'])){this.initHeader('Content-Type',this.defaultPostHeader);}
+if(this.hasDefaultHeaders||this.hasHeaders){this.setHeader(o);}
+this.handleReadyState(o,callback);o.conn.send(postData||null);return o;}},handleReadyState:function(o,callback)
+{var oConn=this;if(callback&&callback.timeout){this.timeout[o.tId]=window.setTimeout(function(){oConn.abort(o,callback,true);},callback.timeout);}
+this.poll[o.tId]=window.setInterval(function(){if(o.conn&&o.conn.readyState==4){window.clearInterval(oConn.poll[o.tId]);delete oConn.poll[o.tId];if(callback&&callback.timeout){window.clearTimeout(oConn.timeout[o.tId]);delete oConn.timeout[o.tId];}
+oConn.handleTransactionResponse(o,callback);}},this.pollInterval);},handleTransactionResponse:function(o,callback,isAbort)
+{if(!callback){this.releaseObject(o);return;}
+var httpStatus,responseObject;try
+{if(o.conn.status!==undefined&&o.conn.status!=0){httpStatus=o.conn.status;}
+else{httpStatus=13030;}}
+catch(e){httpStatus=13030;}
+if(httpStatus>=200&&httpStatus<300){responseObject=this.createResponseObject(o,callback.argument);if(callback.success){if(!callback.scope){callback.success(responseObject);}
+else{callback.success.apply(callback.scope,[responseObject]);}}}
+else{switch(httpStatus){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
+else{callback.failure.apply(callback.scope,[responseObject]);}}
+break;default:responseObject=this.createResponseObject(o,callback.argument);if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
+else{callback.failure.apply(callback.scope,[responseObject]);}}}}
+this.releaseObject(o);responseObject=null;},createResponseObject:function(o,callbackArg)
+{var obj={};var headerObj={};try
+{var headerStr=o.conn.getAllResponseHeaders();var header=headerStr.split('\n');for(var i=0;i<header.length;i++){var delimitPos=header[i].indexOf(':');if(delimitPos!=-1){headerObj[header[i].substring(0,delimitPos)]=header[i].substring(delimitPos+2);}}}
+catch(e){}
+obj.tId=o.tId;obj.status=o.conn.status;obj.statusText=o.conn.statusText;obj.getResponseHeader=headerObj;obj.getAllResponseHeaders=headerStr;obj.responseText=o.conn.responseText;obj.responseXML=o.conn.responseXML;if(typeof callbackArg!==undefined){obj.argument=callbackArg;}
+return obj;},createExceptionObject:function(tId,callbackArg,isAbort)
+{var COMM_CODE=0;var COMM_ERROR='communication failure';var ABORT_CODE=-1;var ABORT_ERROR='transaction aborted';var obj={};obj.tId=tId;if(isAbort){obj.status=ABORT_CODE;obj.statusText=ABORT_ERROR;}
+else{obj.status=COMM_CODE;obj.statusText=COMM_ERROR;}
+if(callbackArg){obj.argument=callbackArg;}
+return obj;},initHeader:function(label,value,isDefault)
+{var headerObj=(isDefault)?this.defaultHeaders:this.headers;if(headerObj[label]===undefined){headerObj[label]=value;}
+else{headerObj[label]=value+","+headerObj[label];}
+if(isDefault){this.hasDefaultHeaders=true;}
+else{this.hasHeaders=true;}},setHeader:function(o)
+{if(this.hasDefaultHeaders){for(var prop in this.defaultHeaders){if(this.defaultHeaders.hasOwnProperty(prop)){o.conn.setRequestHeader(prop,this.defaultHeaders[prop]);}}}
+if(this.hasHeaders){for(var prop in this.headers){if(this.headers.hasOwnProperty(prop)){o.conn.setRequestHeader(prop,this.headers[prop]);}}
+this.headers={};this.hasHeaders=false;}},resetDefaultHeaders:function(){delete this.defaultHeaders;this.defaultHeaders={};this.hasDefaultHeaders=false;},abort:function(o,callback,isTimeout)
+{if(this.isCallInProgress(o)){o.conn.abort();window.clearInterval(this.poll[o.tId]);delete this.poll[o.tId];if(isTimeout){delete this.timeout[o.tId];}
+this.handleTransactionResponse(o,callback,true);return true;}
+else{return false;}},isCallInProgress:function(o)
+{if(o.conn){return o.conn.readyState!=4&&o.conn.readyState!=0;}
+else{return false;}},releaseObject:function(o)
+{o.conn=null;o=null;},activeX:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP']};Ext.lib.Region=function(t,r,b,l){this.top=t;this[1]=t;this.right=r;this.bottom=b;this.left=l;this[0]=l;};Ext.lib.Region.prototype={contains:function(region){return(region.left>=this.left&®ion.right<=this.right&®ion.top>=this.top&®ion.bottom<=this.bottom);},getArea:function(){return((this.bottom-this.top)*(this.right-this.left));},intersect:function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new Ext.lib.Region(t,r,b,l);}else{return null;}},union:function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new Ext.lib.Region(t,r,b,l);},constrainTo:function(r){this.top=this.top.constrain(r.top,r.bottom);this.bottom=this.bottom.constrain(r.top,r.bottom);this.left=this.left.constrain(r.left,r.right);this.right=this.right.constrain(r.left,r.right);return this;},adjust:function(t,l,b,r){this.top+=t;this.left+=l;this.right+=r;this.bottom+=b;return this;}};Ext.lib.Region.getRegion=function(el){var p=Ext.lib.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new Ext.lib.Region(t,r,b,l);};Ext.lib.Point=function(x,y){if(Ext.isArray(x)){y=x[1];x=x[0];}
+this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};Ext.lib.Point.prototype=new Ext.lib.Region();Ext.lib.Anim={scroll:function(el,args,duration,easing,cb,scope){return this.run(el,args,duration,easing,cb,scope,Ext.lib.Scroll);},motion:function(el,args,duration,easing,cb,scope){return this.run(el,args,duration,easing,cb,scope,Ext.lib.Motion);},color:function(el,args,duration,easing,cb,scope){return this.run(el,args,duration,easing,cb,scope,Ext.lib.ColorAnim);},run:function(el,args,duration,easing,cb,scope,type){type=type||Ext.lib.AnimBase;if(typeof easing=="string"){easing=Ext.lib.Easing[easing];}
+var anim=new type(el,args,duration,easing);anim.animateX(function(){Ext.callback(cb,scope);});return anim;}};function fly(el){if(!libFlyweight){libFlyweight=new Ext.Element.Flyweight();}
+libFlyweight.dom=el;return libFlyweight;}
+if(Ext.isIE){function fnCleanUp(){var p=Function.prototype;delete p.createSequence;delete p.defer;delete p.createDelegate;delete p.createCallback;delete p.createInterceptor;window.detachEvent("onunload",fnCleanUp);}
+window.attachEvent("onunload",fnCleanUp);}
+Ext.lib.AnimBase=function(el,attributes,duration,method){if(el){this.init(el,attributes,duration,method);}};Ext.lib.AnimBase.prototype={toString:function(){var el=this.getEl();var id=el.id||el.tagName;return("Anim "+id);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(attr,start,end){return this.method(this.currentFrame,start,end-start,this.totalFrames);},setAttribute:function(attr,val,unit){if(this.patterns.noNegatives.test(attr)){val=(val>0)?val:0;}
+Ext.fly(this.getEl(),'_anim').setStyle(attr,val+unit);},getAttribute:function(attr){var el=this.getEl();var val=fly(el).getStyle(attr);if(val!=='auto'&&!this.patterns.offsetUnit.test(val)){return parseFloat(val);}
+var a=this.patterns.offsetAttribute.exec(attr)||[];var pos=!!(a[3]);var box=!!(a[2]);if(box||(fly(el).getStyle('position')=='absolute'&&pos)){val=el['offset'+a[0].charAt(0).toUpperCase()+a[0].substr(1)];}else{val=0;}
+return val;},getDefaultUnit:function(attr){if(this.patterns.defaultUnit.test(attr)){return'px';}
+return'';},animateX:function(callback,scope){var f=function(){this.onComplete.removeListener(f);if(typeof callback=="function"){callback.call(scope||this,this);}};this.onComplete.addListener(f,this);this.animate();},setRuntimeAttribute:function(attr){var start;var end;var attributes=this.attributes;this.runtimeAttributes[attr]={};var isset=function(prop){return(typeof prop!=='undefined');};if(!isset(attributes[attr]['to'])&&!isset(attributes[attr]['by'])){return false;}
+start=(isset(attributes[attr]['from']))?attributes[attr]['from']:this.getAttribute(attr);if(isset(attributes[attr]['to'])){end=attributes[attr]['to'];}else if(isset(attributes[attr]['by'])){if(start.constructor==Array){end=[];for(var i=0,len=start.length;i<len;++i){end[i]=start[i]+attributes[attr]['by'][i];}}else{end=start+attributes[attr]['by'];}}
+this.runtimeAttributes[attr].start=start;this.runtimeAttributes[attr].end=end;this.runtimeAttributes[attr].unit=(isset(attributes[attr].unit))?attributes[attr]['unit']:this.getDefaultUnit(attr);},init:function(el,attributes,duration,method){var isAnimated=false;var startTime=null;var actualFrames=0;el=Ext.getDom(el);this.attributes=attributes||{};this.duration=duration||1;this.method=method||Ext.lib.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=Ext.lib.AnimMgr.fps;this.getEl=function(){return el;};this.isAnimated=function(){return isAnimated;};this.getStartTime=function(){return startTime;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}
+this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(Ext.lib.AnimMgr.fps*this.duration):this.duration;Ext.lib.AnimMgr.registerElement(this);};this.stop=function(finish){if(finish){this.currentFrame=this.totalFrames;this._onTween.fire();}
+Ext.lib.AnimMgr.stop(this);};var onStart=function(){this.onStart.fire();this.runtimeAttributes={};for(var attr in this.attributes){this.setRuntimeAttribute(attr);}
+isAnimated=true;actualFrames=0;startTime=new Date();};var onTween=function(){var data={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};data.toString=function(){return('duration: '+data.duration+', currentFrame: '+data.currentFrame);};this.onTween.fire(data);var runtimeAttributes=this.runtimeAttributes;for(var attr in runtimeAttributes){this.setAttribute(attr,this.doMethod(attr,runtimeAttributes[attr].start,runtimeAttributes[attr].end),runtimeAttributes[attr].unit);}
+actualFrames+=1;};var onComplete=function(){var actual_duration=(new Date()-startTime)/1000;var data={duration:actual_duration,frames:actualFrames,fps:actualFrames/actual_duration};data.toString=function(){return('duration: '+data.duration+', frames: '+data.frames+', fps: '+data.fps);};isAnimated=false;actualFrames=0;this.onComplete.fire(data);};this._onStart=new Ext.util.Event(this);this.onStart=new Ext.util.Event(this);this.onTween=new Ext.util.Event(this);this._onTween=new Ext.util.Event(this);this.onComplete=new Ext.util.Event(this);this._onComplete=new Ext.util.Event(this);this._onStart.addListener(onStart);this._onTween.addListener(onTween);this._onComplete.addListener(onComplete);}};Ext.lib.AnimMgr=new function(){var thread=null;var queue=[];var tweenCount=0;this.fps=1000;this.delay=1;this.registerElement=function(tween){queue[queue.length]=tween;tweenCount+=1;tween._onStart.fire();this.start();};this.unRegister=function(tween,index){tween._onComplete.fire();index=index||getIndex(tween);if(index!=-1){queue.splice(index,1);}
+tweenCount-=1;if(tweenCount<=0){this.stop();}};this.start=function(){if(thread===null){thread=setInterval(this.run,this.delay);}};this.stop=function(tween){if(!tween){clearInterval(thread);for(var i=0,len=queue.length;i<len;++i){if(queue[0].isAnimated()){this.unRegister(queue[0],0);}}
+queue=[];thread=null;tweenCount=0;}
+else{this.unRegister(tween);}};this.run=function(){for(var i=0,len=queue.length;i<len;++i){var tween=queue[i];if(!tween||!tween.isAnimated()){continue;}
+if(tween.currentFrame<tween.totalFrames||tween.totalFrames===null)
+{tween.currentFrame+=1;if(tween.useSeconds){correctFrame(tween);}
+tween._onTween.fire();}
+else{Ext.lib.AnimMgr.stop(tween,i);}}};var getIndex=function(anim){for(var i=0,len=queue.length;i<len;++i){if(queue[i]==anim){return i;}}
+return-1;};var correctFrame=function(tween){var frames=tween.totalFrames;var frame=tween.currentFrame;var expected=(tween.currentFrame*tween.duration*1000/tween.totalFrames);var elapsed=(new Date()-tween.getStartTime());var tweak=0;if(elapsed<tween.duration*1000){tweak=Math.round((elapsed/expected-1)*tween.currentFrame);}else{tweak=frames-(frame+1);}
+if(tweak>0&&isFinite(tweak)){if(tween.currentFrame+tweak>=frames){tweak=frames-(frame+1);}
+tween.currentFrame+=tweak;}};};Ext.lib.Bezier=new function(){this.getPosition=function(points,t){var n=points.length;var tmp=[];for(var i=0;i<n;++i){tmp[i]=[points[i][0],points[i][1]];}
+for(var j=1;j<n;++j){for(i=0;i<n-j;++i){tmp[i][0]=(1-t)*tmp[i][0]+t*tmp[parseInt(i+1,10)][0];tmp[i][1]=(1-t)*tmp[i][1]+t*tmp[parseInt(i+1,10)][1];}}
+return[tmp[0][0],tmp[0][1]];};};(function(){Ext.lib.ColorAnim=function(el,attributes,duration,method){Ext.lib.ColorAnim.superclass.constructor.call(this,el,attributes,duration,method);};Ext.extend(Ext.lib.ColorAnim,Ext.lib.AnimBase);var Y=Ext.lib;var superclass=Y.ColorAnim.superclass;var proto=Y.ColorAnim.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("ColorAnim "+id);};proto.patterns.color=/color$/i;proto.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;proto.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;proto.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;proto.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;proto.parseColor=function(s){if(s.length==3){return s;}
+var c=this.patterns.hex.exec(s);if(c&&c.length==4){return[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)];}
+c=this.patterns.rgb.exec(s);if(c&&c.length==4){return[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)];}
+c=this.patterns.hex3.exec(s);if(c&&c.length==4){return[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)];}
+return null;};proto.getAttribute=function(attr){var el=this.getEl();if(this.patterns.color.test(attr)){var val=fly(el).getStyle(attr);if(this.patterns.transparent.test(val)){var parent=el.parentNode;val=fly(parent).getStyle(attr);while(parent&&this.patterns.transparent.test(val)){parent=parent.parentNode;val=fly(parent).getStyle(attr);if(parent.tagName.toUpperCase()=='HTML'){val='#fff';}}}}else{val=superclass.getAttribute.call(this,attr);}
+return val;};proto.doMethod=function(attr,start,end){var val;if(this.patterns.color.test(attr)){val=[];for(var i=0,len=start.length;i<len;++i){val[i]=superclass.doMethod.call(this,attr,start[i],end[i]);}
+val='rgb('+Math.floor(val[0])+','+Math.floor(val[1])+','+Math.floor(val[2])+')';}
+else{val=superclass.doMethod.call(this,attr,start,end);}
+return val;};proto.setRuntimeAttribute=function(attr){superclass.setRuntimeAttribute.call(this,attr);if(this.patterns.color.test(attr)){var attributes=this.attributes;var start=this.parseColor(this.runtimeAttributes[attr].start);var end=this.parseColor(this.runtimeAttributes[attr].end);if(typeof attributes[attr]['to']==='undefined'&&typeof attributes[attr]['by']!=='undefined'){end=this.parseColor(attributes[attr].by);for(var i=0,len=start.length;i<len;++i){end[i]=start[i]+end[i];}}
+this.runtimeAttributes[attr].start=start;this.runtimeAttributes[attr].end=end;}};})();Ext.lib.Easing={easeNone:function(t,b,c,d){return c*t/d+b;},easeIn:function(t,b,c,d){return c*(t/=d)*t+b;},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeBoth:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t+b;}
+return-c/2*((--t)*(t-2)-1)+b;},easeInStrong:function(t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutStrong:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeBothStrong:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t*t*t+b;}
+return-c/2*((t-=2)*t*t*t-2)+b;},elasticIn:function(t,b,c,d,a,p){if(t==0){return b;}
+if((t/=d)==1){return b+c;}
+if(!p){p=d*.3;}
+if(!a||a<Math.abs(c)){a=c;var s=p/4;}
+else{var s=p/(2*Math.PI)*Math.asin(c/a);}
+return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},elasticOut:function(t,b,c,d,a,p){if(t==0){return b;}
+if((t/=d)==1){return b+c;}
+if(!p){p=d*.3;}
+if(!a||a<Math.abs(c)){a=c;var s=p/4;}
+else{var s=p/(2*Math.PI)*Math.asin(c/a);}
+return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},elasticBoth:function(t,b,c,d,a,p){if(t==0){return b;}
+if((t/=d/2)==2){return b+c;}
+if(!p){p=d*(.3*1.5);}
+if(!a||a<Math.abs(c)){a=c;var s=p/4;}
+else{var s=p/(2*Math.PI)*Math.asin(c/a);}
+if(t<1){return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;}
+return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},backIn:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
+return c*(t/=d)*t*((s+1)*t-s)+b;},backOut:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
+return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},backBoth:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
+if((t/=d/2)<1){return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;}
+return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},bounceIn:function(t,b,c,d){return c-Ext.lib.Easing.bounceOut(d-t,0,c,d)+b;},bounceOut:function(t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}
+return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;},bounceBoth:function(t,b,c,d){if(t<d/2){return Ext.lib.Easing.bounceIn(t*2,0,c,d)*.5+b;}
+return Ext.lib.Easing.bounceOut(t*2-d,0,c,d)*.5+c*.5+b;}};(function(){Ext.lib.Motion=function(el,attributes,duration,method){if(el){Ext.lib.Motion.superclass.constructor.call(this,el,attributes,duration,method);}};Ext.extend(Ext.lib.Motion,Ext.lib.ColorAnim);var Y=Ext.lib;var superclass=Y.Motion.superclass;var proto=Y.Motion.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Motion "+id);};proto.patterns.points=/^points$/i;proto.setAttribute=function(attr,val,unit){if(this.patterns.points.test(attr)){unit=unit||'px';superclass.setAttribute.call(this,'left',val[0],unit);superclass.setAttribute.call(this,'top',val[1],unit);}else{superclass.setAttribute.call(this,attr,val,unit);}};proto.getAttribute=function(attr){if(this.patterns.points.test(attr)){var val=[superclass.getAttribute.call(this,'left'),superclass.getAttribute.call(this,'top')];}else{val=superclass.getAttribute.call(this,attr);}
+return val;};proto.doMethod=function(attr,start,end){var val=null;if(this.patterns.points.test(attr)){var t=this.method(this.currentFrame,0,100,this.totalFrames)/100;val=Y.Bezier.getPosition(this.runtimeAttributes[attr],t);}else{val=superclass.doMethod.call(this,attr,start,end);}
+return val;};proto.setRuntimeAttribute=function(attr){if(this.patterns.points.test(attr)){var el=this.getEl();var attributes=this.attributes;var start;var control=attributes['points']['control']||[];var end;var i,len;if(control.length>0&&!Ext.isArray(control[0])){control=[control];}else{var tmp=[];for(i=0,len=control.length;i<len;++i){tmp[i]=control[i];}
+control=tmp;}
+Ext.fly(el,'_anim').position();if(isset(attributes['points']['from'])){Ext.lib.Dom.setXY(el,attributes['points']['from']);}
+else{Ext.lib.Dom.setXY(el,Ext.lib.Dom.getXY(el));}
+start=this.getAttribute('points');if(isset(attributes['points']['to'])){end=translateValues.call(this,attributes['points']['to'],start);var pageXY=Ext.lib.Dom.getXY(this.getEl());for(i=0,len=control.length;i<len;++i){control[i]=translateValues.call(this,control[i],start);}}else if(isset(attributes['points']['by'])){end=[start[0]+attributes['points']['by'][0],start[1]+attributes['points']['by'][1]];for(i=0,len=control.length;i<len;++i){control[i]=[start[0]+control[i][0],start[1]+control[i][1]];}}
+this.runtimeAttributes[attr]=[start];if(control.length>0){this.runtimeAttributes[attr]=this.runtimeAttributes[attr].concat(control);}
+this.runtimeAttributes[attr][this.runtimeAttributes[attr].length]=end;}
+else{superclass.setRuntimeAttribute.call(this,attr);}};var translateValues=function(val,start){var pageXY=Ext.lib.Dom.getXY(this.getEl());val=[val[0]-pageXY[0]+start[0],val[1]-pageXY[1]+start[1]];return val;};var isset=function(prop){return(typeof prop!=='undefined');};})();(function(){Ext.lib.Scroll=function(el,attributes,duration,method){if(el){Ext.lib.Scroll.superclass.constructor.call(this,el,attributes,duration,method);}};Ext.extend(Ext.lib.Scroll,Ext.lib.ColorAnim);var Y=Ext.lib;var superclass=Y.Scroll.superclass;var proto=Y.Scroll.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Scroll "+id);};proto.doMethod=function(attr,start,end){var val=null;if(attr=='scroll'){val=[this.method(this.currentFrame,start[0],end[0]-start[0],this.totalFrames),this.method(this.currentFrame,start[1],end[1]-start[1],this.totalFrames)];}else{val=superclass.doMethod.call(this,attr,start,end);}
+return val;};proto.getAttribute=function(attr){var val=null;var el=this.getEl();if(attr=='scroll'){val=[el.scrollLeft,el.scrollTop];}else{val=superclass.getAttribute.call(this,attr);}
+return val;};proto.setAttribute=function(attr,val,unit){var el=this.getEl();if(attr=='scroll'){el.scrollLeft=val[0];el.scrollTop=val[1];}else{superclass.setAttribute.call(this,attr,val,unit);}};})();})();
Modified: mickael/trunk/ext/v3.0.0-a1/adapter/jquery/ext-jquery-adapter.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/adapter/jquery/ext-jquery-adapter.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/adapter/jquery/ext-jquery-adapter.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -23,7 +23,7 @@
return obj;},each:function(array,fn,scope){if(typeof array.length=="undefined"||typeof array=="string"){array=[array];}
for(var i=0,len=array.length;i<len;i++){if(fn.call(scope||array[i],array[i],i,array)===false){return i;};}},combine:function(){var as=arguments,l=as.length,r=[];for(var i=0;i<l;i++){var a=as[i];if(Ext.isArray(a)){r=r.concat(a);}else if(a.length!==undefined&&!a.substr){r=r.concat(Array.prototype.slice.call(a,0));}else{r.push(a);}}
return r;},escapeRe:function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");},callback:function(cb,scope,args,delay){if(typeof cb=="function"){if(delay){cb.defer(delay,scope,args||[]);}else{cb.apply(scope,args||[]);}}},getDom:function(el){if(!el||!document){return null;}
-return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){if(typeof v!='number'){return defaultValue;}
+return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){if(typeof v!='number'||isNaN(v)){return defaultValue;}
return v;},destroy:function(){for(var i=0,a=arguments,len=a.length;i<len;i++){var as=a[i];if(as){if(typeof as.destroy=='function'){as.destroy();}
else if(as.dom){as.removeAllListeners();as.remove();}}}},destroyMembers:function(o,arg1,arg2,etc){for(var i=1,a=arguments,len=a.length;i<len;i++){Ext.destroy(o[a[i]]);delete o[a[i]];}},removeNode:isIE?function(){var d;return function(n){if(n&&n.tagName!='BODY'){d=d||document.createElement('div');d.appendChild(n);d.innerHTML='';}}}():function(n){if(n&&n.parentNode&&n.tagName!='BODY'){n.parentNode.removeChild(n);}},type:function(o){if(o===undefined||o===null){return false;}
if(o.htmlElement){return'element';}
@@ -32,7 +32,7 @@
if(typeof o.length=='number'&&typeof o.item=='function'){return'nodelist';}}
return t;},isEmpty:function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==='':false);},value:function(v,defaultValue,allowBlank){return Ext.isEmpty(v,allowBlank)?defaultValue:v;},isArray:function(v){return v&&typeof v.length=='number'&&typeof v.splice=='function';},isDate:function(v){return v&&typeof v.getFullYear=='function';},copyTo:function(dest,source,names){if(typeof names=='string'){names=names.split(/[,;\s]/);}
for(var i=0,len=names.length;i<len;i++){var n=names[i];if(source.hasOwnProperty(n)){dest[n]=source[n];}}
-return dest;},intercept:function(o,name,fn,scope){o[name]=o[name].createInterceptor(fn,scope);},sequence:function(o,name,fn,scope){o[name]=o[name].createSequence(fn,scope);},isOpera:isOpera,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7&&!isIE8,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux","Ext.chart");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
+return dest;},intercept:function(o,name,fn,scope){o[name]=o[name].createInterceptor(fn,scope);},sequence:function(o,name,fn,scope){o[name]=o[name].createSequence(fn,scope);},isOpera:isOpera,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7&&!isIE8,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux","Ext.chart","Ext.direct");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
return method.apply(obj||window,callArgs);};},defer:function(millis,obj,args,appendArgs){var fn=this.createDelegate(obj,args,appendArgs);if(millis){return setTimeout(fn,millis);}
fn();return 0;},createSequence:function(fcn,scope){if(typeof fcn!="function"){return this;}
var method=this;return function(){var retval=method.apply(this||window,arguments);fcn.apply(scope||this||window,arguments);return retval;};},createInterceptor:function(fcn,scope){if(typeof fcn!="function"){return this;}
Modified: mickael/trunk/ext/v3.0.0-a1/adapter/prototype/ext-prototype-adapter.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/adapter/prototype/ext-prototype-adapter.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/adapter/prototype/ext-prototype-adapter.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -23,7 +23,7 @@
return obj;},each:function(array,fn,scope){if(typeof array.length=="undefined"||typeof array=="string"){array=[array];}
for(var i=0,len=array.length;i<len;i++){if(fn.call(scope||array[i],array[i],i,array)===false){return i;};}},combine:function(){var as=arguments,l=as.length,r=[];for(var i=0;i<l;i++){var a=as[i];if(Ext.isArray(a)){r=r.concat(a);}else if(a.length!==undefined&&!a.substr){r=r.concat(Array.prototype.slice.call(a,0));}else{r.push(a);}}
return r;},escapeRe:function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");},callback:function(cb,scope,args,delay){if(typeof cb=="function"){if(delay){cb.defer(delay,scope,args||[]);}else{cb.apply(scope,args||[]);}}},getDom:function(el){if(!el||!document){return null;}
-return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){if(typeof v!='number'){return defaultValue;}
+return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){if(typeof v!='number'||isNaN(v)){return defaultValue;}
return v;},destroy:function(){for(var i=0,a=arguments,len=a.length;i<len;i++){var as=a[i];if(as){if(typeof as.destroy=='function'){as.destroy();}
else if(as.dom){as.removeAllListeners();as.remove();}}}},destroyMembers:function(o,arg1,arg2,etc){for(var i=1,a=arguments,len=a.length;i<len;i++){Ext.destroy(o[a[i]]);delete o[a[i]];}},removeNode:isIE?function(){var d;return function(n){if(n&&n.tagName!='BODY'){d=d||document.createElement('div');d.appendChild(n);d.innerHTML='';}}}():function(n){if(n&&n.parentNode&&n.tagName!='BODY'){n.parentNode.removeChild(n);}},type:function(o){if(o===undefined||o===null){return false;}
if(o.htmlElement){return'element';}
@@ -32,7 +32,7 @@
if(typeof o.length=='number'&&typeof o.item=='function'){return'nodelist';}}
return t;},isEmpty:function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==='':false);},value:function(v,defaultValue,allowBlank){return Ext.isEmpty(v,allowBlank)?defaultValue:v;},isArray:function(v){return v&&typeof v.length=='number'&&typeof v.splice=='function';},isDate:function(v){return v&&typeof v.getFullYear=='function';},copyTo:function(dest,source,names){if(typeof names=='string'){names=names.split(/[,;\s]/);}
for(var i=0,len=names.length;i<len;i++){var n=names[i];if(source.hasOwnProperty(n)){dest[n]=source[n];}}
-return dest;},intercept:function(o,name,fn,scope){o[name]=o[name].createInterceptor(fn,scope);},sequence:function(o,name,fn,scope){o[name]=o[name].createSequence(fn,scope);},isOpera:isOpera,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7&&!isIE8,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux","Ext.chart");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
+return dest;},intercept:function(o,name,fn,scope){o[name]=o[name].createInterceptor(fn,scope);},sequence:function(o,name,fn,scope){o[name]=o[name].createSequence(fn,scope);},isOpera:isOpera,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7&&!isIE8,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux","Ext.chart","Ext.direct");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
return method.apply(obj||window,callArgs);};},defer:function(millis,obj,args,appendArgs){var fn=this.createDelegate(obj,args,appendArgs);if(millis){return setTimeout(fn,millis);}
fn();return 0;},createSequence:function(fcn,scope){if(typeof fcn!="function"){return this;}
var method=this;return function(){var retval=method.apply(this||window,arguments);fcn.apply(scope||this||window,arguments);return retval;};},createInterceptor:function(fcn,scope){if(typeof fcn!="function"){return this;}
Modified: mickael/trunk/ext/v3.0.0-a1/adapter/yui/ext-yui-adapter.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/adapter/yui/ext-yui-adapter.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/adapter/yui/ext-yui-adapter.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -23,7 +23,7 @@
return obj;},each:function(array,fn,scope){if(typeof array.length=="undefined"||typeof array=="string"){array=[array];}
for(var i=0,len=array.length;i<len;i++){if(fn.call(scope||array[i],array[i],i,array)===false){return i;};}},combine:function(){var as=arguments,l=as.length,r=[];for(var i=0;i<l;i++){var a=as[i];if(Ext.isArray(a)){r=r.concat(a);}else if(a.length!==undefined&&!a.substr){r=r.concat(Array.prototype.slice.call(a,0));}else{r.push(a);}}
return r;},escapeRe:function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");},callback:function(cb,scope,args,delay){if(typeof cb=="function"){if(delay){cb.defer(delay,scope,args||[]);}else{cb.apply(scope,args||[]);}}},getDom:function(el){if(!el||!document){return null;}
-return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){if(typeof v!='number'){return defaultValue;}
+return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){if(typeof v!='number'||isNaN(v)){return defaultValue;}
return v;},destroy:function(){for(var i=0,a=arguments,len=a.length;i<len;i++){var as=a[i];if(as){if(typeof as.destroy=='function'){as.destroy();}
else if(as.dom){as.removeAllListeners();as.remove();}}}},destroyMembers:function(o,arg1,arg2,etc){for(var i=1,a=arguments,len=a.length;i<len;i++){Ext.destroy(o[a[i]]);delete o[a[i]];}},removeNode:isIE?function(){var d;return function(n){if(n&&n.tagName!='BODY'){d=d||document.createElement('div');d.appendChild(n);d.innerHTML='';}}}():function(n){if(n&&n.parentNode&&n.tagName!='BODY'){n.parentNode.removeChild(n);}},type:function(o){if(o===undefined||o===null){return false;}
if(o.htmlElement){return'element';}
@@ -32,7 +32,7 @@
if(typeof o.length=='number'&&typeof o.item=='function'){return'nodelist';}}
return t;},isEmpty:function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==='':false);},value:function(v,defaultValue,allowBlank){return Ext.isEmpty(v,allowBlank)?defaultValue:v;},isArray:function(v){return v&&typeof v.length=='number'&&typeof v.splice=='function';},isDate:function(v){return v&&typeof v.getFullYear=='function';},copyTo:function(dest,source,names){if(typeof names=='string'){names=names.split(/[,;\s]/);}
for(var i=0,len=names.length;i<len;i++){var n=names[i];if(source.hasOwnProperty(n)){dest[n]=source[n];}}
-return dest;},intercept:function(o,name,fn,scope){o[name]=o[name].createInterceptor(fn,scope);},sequence:function(o,name,fn,scope){o[name]=o[name].createSequence(fn,scope);},isOpera:isOpera,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7&&!isIE8,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux","Ext.chart");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
+return dest;},intercept:function(o,name,fn,scope){o[name]=o[name].createInterceptor(fn,scope);},sequence:function(o,name,fn,scope){o[name]=o[name].createSequence(fn,scope);},isOpera:isOpera,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7&&!isIE8,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux","Ext.chart","Ext.direct");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
return method.apply(obj||window,callArgs);};},defer:function(millis,obj,args,appendArgs){var fn=this.createDelegate(obj,args,appendArgs);if(millis){return setTimeout(fn,millis);}
fn();return 0;},createSequence:function(fcn,scope){if(typeof fcn!="function"){return this;}
var method=this;return function(){var retval=method.apply(this||window,arguments);fcn.apply(scope||this||window,arguments);return retval;};},createInterceptor:function(fcn,scope){if(typeof fcn!="function"){return this;}
Modified: mickael/trunk/ext/v3.0.0-a1/build/core/Ext-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/core/Ext-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/core/Ext-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -23,7 +23,7 @@
return obj;},each:function(array,fn,scope){if(typeof array.length=="undefined"||typeof array=="string"){array=[array];}
for(var i=0,len=array.length;i<len;i++){if(fn.call(scope||array[i],array[i],i,array)===false){return i;};}},combine:function(){var as=arguments,l=as.length,r=[];for(var i=0;i<l;i++){var a=as[i];if(Ext.isArray(a)){r=r.concat(a);}else if(a.length!==undefined&&!a.substr){r=r.concat(Array.prototype.slice.call(a,0));}else{r.push(a);}}
return r;},escapeRe:function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");},callback:function(cb,scope,args,delay){if(typeof cb=="function"){if(delay){cb.defer(delay,scope,args||[]);}else{cb.apply(scope,args||[]);}}},getDom:function(el){if(!el||!document){return null;}
-return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){if(typeof v!='number'){return defaultValue;}
+return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){if(typeof v!='number'||isNaN(v)){return defaultValue;}
return v;},destroy:function(){for(var i=0,a=arguments,len=a.length;i<len;i++){var as=a[i];if(as){if(typeof as.destroy=='function'){as.destroy();}
else if(as.dom){as.removeAllListeners();as.remove();}}}},destroyMembers:function(o,arg1,arg2,etc){for(var i=1,a=arguments,len=a.length;i<len;i++){Ext.destroy(o[a[i]]);delete o[a[i]];}},removeNode:isIE?function(){var d;return function(n){if(n&&n.tagName!='BODY'){d=d||document.createElement('div');d.appendChild(n);d.innerHTML='';}}}():function(n){if(n&&n.parentNode&&n.tagName!='BODY'){n.parentNode.removeChild(n);}},type:function(o){if(o===undefined||o===null){return false;}
if(o.htmlElement){return'element';}
@@ -32,7 +32,7 @@
if(typeof o.length=='number'&&typeof o.item=='function'){return'nodelist';}}
return t;},isEmpty:function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==='':false);},value:function(v,defaultValue,allowBlank){return Ext.isEmpty(v,allowBlank)?defaultValue:v;},isArray:function(v){return v&&typeof v.length=='number'&&typeof v.splice=='function';},isDate:function(v){return v&&typeof v.getFullYear=='function';},copyTo:function(dest,source,names){if(typeof names=='string'){names=names.split(/[,;\s]/);}
for(var i=0,len=names.length;i<len;i++){var n=names[i];if(source.hasOwnProperty(n)){dest[n]=source[n];}}
-return dest;},intercept:function(o,name,fn,scope){o[name]=o[name].createInterceptor(fn,scope);},sequence:function(o,name,fn,scope){o[name]=o[name].createSequence(fn,scope);},isOpera:isOpera,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7&&!isIE8,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux","Ext.chart");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
+return dest;},intercept:function(o,name,fn,scope){o[name]=o[name].createInterceptor(fn,scope);},sequence:function(o,name,fn,scope){o[name]=o[name].createSequence(fn,scope);},isOpera:isOpera,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari2:isSafari&&!isSafari3,isIE:isIE,isIE6:isIE&&!isIE7&&!isIE8,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko&&!isGecko3,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!isIE7)||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux","Ext.chart","Ext.direct");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
return method.apply(obj||window,callArgs);};},defer:function(millis,obj,args,appendArgs){var fn=this.createDelegate(obj,args,appendArgs);if(millis){return setTimeout(fn,millis);}
fn();return 0;},createSequence:function(fcn,scope){if(typeof fcn!="function"){return this;}
var method=this;return function(){var retval=method.apply(this||window,arguments);fcn.apply(scope||this||window,arguments);return retval;};},createInterceptor:function(fcn,scope){if(typeof fcn!="function"){return this;}
Modified: mickael/trunk/ext/v3.0.0-a1/build/data/Direct-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/data/Direct-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/data/Direct-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -7,7 +7,7 @@
*/
-(function(){var transactions={},TID=0,impl,d,pollStartTimer=0,callBuffer=[],callTask,providers={};var get=function(id){return transactions[id]||{};}
+(function(){var transactions={},TID=0,impl,d,pollStartTimer=0,callBuffer=[],callTask;var get=function(id){return transactions[id]||{};}
var createEvent=function(t,data,xhr,success,hs){return Ext.apply(t||{},{xhr:xhr,success:success,data:data,arg:hs});}
var doCallback=function(data,t,success,xhr){var fn=success?'success':'failure';if(t&&t.cb){var hs=t.cb;var e=createEvent(t,data,xhr,success,hs);if(typeof hs=='function'){delete e.arg;hs(data,e);}else{Ext.callback(hs[fn],hs.scope,[data,e]);Ext.callback(hs.callback,hs.scope,[data,e]);}}}
var handleEvent=function(data,xhr){if(!data){return;}
@@ -16,7 +16,8 @@
if(data.where&&d.enableDebug){Ext.Msg.maxWidth=800;Ext.Msg.show({title:'Exception occurred while making a remote call to the server',msg:'Stack trace from the server:',buttons:Ext.MessageBox.OK,multiline:400,width:800,value:data.message+'\n'+data.where});}
break;}}
var handleException=function(opt,xhr,type){var t=get(opt.tid);if(t){t.xhr=xhr;t.type=type||d.exceptions.TRANSPORT;doCallback(null,t,false,xhr);d.fireEvent('exception',t);delete transactions[opt.tid];}else{d.fireEvent('exception',{tid:opt.tid,xhr:xhr,code:type||d.exceptions.TRANSPORT});}}
-var cb=function(opt,success,xhr){if(success){var data=null;if(!Ext.isEmpty(xhr.responseText)){if(typeof xhr.responseText=='object'){data=xhr.responseText;}else{try{data=Ext.decode(xhr.responseText);}catch(e){return handleException(opt,xhr,d.exceptions.PARSE);}}
+var cb=function(opt,success,xhr){if(opt&&opt.poll){Ext.Direct.fireEvent('poll',xhr,success);}
+if(success){var data=null;if(!Ext.isEmpty(xhr.responseText)){try{data=Ext.decode(xhr.responseText);}catch(e){return handleException(opt,xhr,d.exceptions.PARSE);}
if(Ext.isArray(data)){for(var i=0,len=data.length;i<len;i++){handleEvent(data[i],xhr);}}else{handleEvent(data,xhr);}}else if(opt.ts){for(var j=0,len=opt.ts.length;j<len;j++){doCallback(null,transactions[opt.ts[j].tid],true,xhr);}}}else{handleException(opt,xhr);}}
var doSend=function(data){if(d.enableUrlEncode){var params={};params[typeof d.enableUrlEncode=='string'?d.enableUrlEncode:'data']=Ext.encode(data);Ext.Ajax.request({url:d.remoteUrl,params:params,callback:cb,ts:data});}else{Ext.Ajax.request({url:d.remoteUrl,jsonData:data,callback:cb,ts:data});}}
var combineAndSend=function(){var len=callBuffer.length;if(len>0){doSend(len==1?callBuffer[0]:callBuffer);callBuffer=[];}}
@@ -28,9 +29,5 @@
Ext.Ajax.request({url:d.remoteUrl,params:params,callback:cb,form:form,isUpload:isUpload,ts:{action:c,method:m.name,tid:t.tid,data:null}});}
var createMethod=function(c,m){var f;if(!m.formHandler){f=function(){doCall(c,m,Array.prototype.slice.call(arguments,0));};}else{f=function(form,callback,scope){doForm(c,m,form,callback,scope);};}
f.directCfg={action:c,method:m};return f;}
-var onProviderData=function(p,e){switch(e.format){case'string':cb({},true,{responseText:e.data});break;default:cb({},true,e.data);}}
-var onProviderException=function(p,e){handleException({},e.data,e.type);}
-impl=Ext.extend(Ext.util.Observable,{exceptions:{TRANSPORT:'xhr',PARSE:'parse',LOGIN:'login',SERVER:'exception'},constructor:function(){impl.superclass.constructor.call(this);this.addEvents('beforecall','call','beforeevent','event','exception');},defineAPI:function(data){d.remoteUrl=data.url;var o=data.actions||data.cls;for(var c in o){var cls=window[c]||(window[c]={});var ms=o[c];for(var i=0,len=ms.length;i<len;i++){var m=ms[i];cls[m.name]=createMethod(c,m);}}},inject:function(stringData,opt){cb(opt||{},true,{responseText:stringData});},injectRaw:function(opt,success,xhr){cb(opt,success,xhr);},injectTransaction:function(callback){var t={tid:++TID,action:c,method:m,cb:callback};transactions[t.tid]=t;return t;},addProvider:function(provider){if(!provider.events){provider=new d.PROVIDERS[provider.type](provider);}
-if(!provider.isConnected()){provider.connect();}
-provider.id=provider.id||Ext.id;providers[provider.id]=provider;provider.on('data',onProviderData);provider.on('exception',onProviderException);return provider;},getProvider:function(id){return providers[id];},removeProvider:function(id){var provider=id.id?id:providers[id.id];provider.un('data',onProviderData);provider.un('exception',onProviderException);delete providers[provider.id];return provider;},enableBuffer:10});Ext.Direct=d=new impl();d.PROVIDERS={};var reconnId=0;var retryId=0;var clear=function(){clearTimeout(reconnId);clearTimeout(retryId);}
+impl=Ext.extend(Ext.util.Observable,{exceptions:{TRANSPORT:'xhr',PARSE:'parse',LOGIN:'login',SERVER:'exception'},constructor:function(){impl.superclass.constructor.call(this);this.addEvents('beforecall','call','beforeevent','event','exception','connect','disconnect','pollstart','pollstop');},defineAPI:function(data){d.remoteUrl=data.url;var o=data.actions||data.cls;for(var c in o){var cls=window[c]||(window[c]={});var ms=o[c];for(var i=0,len=ms.length;i<len;i++){var m=ms[i];cls[m.name]=createMethod(c,m);}}},startPoll:function(){clearTimeout(pollStartTimer);if(!this.poller){this.poller=Ext.TaskMgr.start({run:function(){if(Ext.Direct.fireEvent('beforepoll')!==false){Ext.Ajax.request({url:d.remoteUrl+d.pollUrlFragment,callback:cb,poll:true});}},interval:this.pollInterval,scope:this});Ext.Direct.fireEvent('startpolling');}},stopPoll:function(){clearTimeout(pollStartTimer);if(this.poller){Ext.TaskMgr.stop(this.poller);delete this.poller;Ext.Direct.fireEvent('stoppolling');}},inject:function(stringData,opt){cb(opt||{},true,{responseText:stringData});},injectTransaction:function(callback){var t={tid:++TID,action:c,method:m,cb:callback};transactions[t.tid]=t;return t;},startStreaming:function(startKeepAlive){pollStartTimer=this.startPoll.defer(10000,this);if(startKeepAlive===true){this.startKeepAlive();}},startKeepAlive:function(){(function(){this.keepAlive=Ext.TaskMgr.start({run:function(){Ext.Ajax.request({url:d.remoteUrl+d.pingUrlFragment,callback:cb});var flash;if(d.Flash&&(flash=d.Flash.getFlash())){try{flash.send('ping');}catch(e){try{flash.reconnect();}catch(e){}}}},interval:this.keepAliveInterval,scope:this});}).defer(100,this);},autoReconnect:true,pollInterval:3000,keepAliveInterval:60000,pollUrlFragment:'/poll',pingUrlFragment:'/ping',enableBuffer:10});Ext.Direct=d=new impl();var reconnId=0;var retryId=0;var clear=function(){clearTimeout(reconnId);clearTimeout(retryId);}
d.Flash={onData:function(strData){setTimeout(function(){d.inject(strData);},10);},onConnect:function(success){if(success){clear();d.stopPoll();d.fireEvent('connect');}else{d.startPoll();if(d.autoReconnect){d.Flash.reconnect();}}},getFlash:function(){return Ext.isIE?window.xflashDirect:document.xflashDirect;},reconnect:function(){clear();var flash=d.Flash.getFlash();if(flash){reconnId=setTimeout(function(){flash.reconnect();},1000);retryId=setInterval(function(){flash.reconnect();},30000);}},onClose:function(){d.fireEvent('disconnect');d.startPoll();if(d.autoReconnect){d.Flash.reconnect();}}};})();
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/build/data/DirectProxy-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/data/DirectProxy-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/data/DirectProxy-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -9,6 +9,6 @@
Ext.data.DirectProxy=function(config){Ext.apply(this,config);if(typeof this.paramOrder=='string'){this.paramOrder=this.paramOrder.split(/[\s,|]/);}
Ext.data.DirectProxy.superclass.constructor.call(this);};Ext.extend(Ext.data.DirectProxy,Ext.data.DataProxy,{paramOrder:undefined,paramsAsHash:true,directFn:undefined,load:function(params,reader,cb,scope,arg){if(this.fireEvent("beforeload",this,params)!==false){var args=[];if(this.paramOrder){for(var i=0,len=this.paramOrder.length;i<len;i++){args.push(params[this.paramOrder[i]]);}}else if(this.paramsAsHash){args.push(params);}
-args.push({callback:function(result,e){if(!e.success){this.fireEvent("loadexception",this,e,result);cb.call(scope,null,arg,false);return;}
+args.push({callback:function(result,e){if(!e.status){this.fireEvent("loadexception",this,e,result);cb.call(scope,null,arg,false);return;}
var rs;try{rs=reader.readRecords(result);}catch(ex){this.fireEvent("loadexception",this,e,result,ex);cb.call(scope,null,arg,false);return;}
this.fireEvent("load",this,e,arg);cb.call(scope,rs,arg,true);},scope:this});this.directFn.apply(window,args);}else{cb.call(scope||this,null,arg,false);}}});
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/build/util/Date-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/util/Date-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/util/Date-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -7,20 +7,21 @@
*/
-(function(){Date.formatCodeToRegex=function(character,currentGroup){var p=Date.parseCodes[character];if(p){p=Ext.type(p)=='function'?p():p;Date.parseCodes[character]=p;}
-return p?Ext.applyIf({c:p.c?String.format(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.escapeRe(character)}}
+(function(){function xf(format){var args=Array.prototype.slice.call(arguments,1);return format.replace(/\{(\d+)\}/g,function(m,i){return args[i];});}
+Date.formatCodeToRegex=function(character,currentGroup){var p=Date.parseCodes[character];if(p){p=Ext.type(p)=='function'?p():p;Date.parseCodes[character]=p;}
+return p?Ext.applyIf({c:p.c?xf(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.escapeRe(character)}}
var $f=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{count:0},parseRegexes:[],formatFunctions:{count:0},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},getShortMonthName:function(month){return Date.monthNames[month].substring(0,3);},getShortDayName:function(day){return Date.dayNames[day].substring(0,3);},getMonthNumber:function(name){return Date.monthNumbers[name.substring(0,1).toUpperCase()+name.substring(1,3).toLowerCase()];},formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"this.getFullYear()",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var c="Y-m-dTH:i:sP",code=[],i=0,l=c.length;i<l;++i){var e=c.charAt(i);code.push(e=="T"?"'T'":Date.getFormatCode(e));}
return code.join(" + ");},U:"Math.round(this.getTime() / 1000)"},parseDate:function(input,format){var p=Date.parseFunctions;if(p[format]==null){Date.createParser(format);}
var func=p[format];return Date[func](input);},getFormatCode:function(character){var f=Date.formatCodes[character];if(f){f=Ext.type(f)=='function'?f():f;Date.formatCodes[character]=f;}
return f||("'"+String.escape(character)+"'");},createNewFormat:function(format){var funcName="format"+Date.formatFunctions.count++,code="Date.prototype."+funcName+" = function(){return ",special=false,ch='';Date.formatFunctions[format]=funcName;for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}
else if(special){special=false;code+="'"+String.escape(ch)+"' + ";}
else{code+=Date.getFormatCode(ch)+" + ";}}
-eval(code.substring(0,code.length-3)+";}");},createParser:function(format){var funcName="parse"+Date.parseFunctions.count++,regexNum=Date.parseRegexes.length,currentGroup=1,code=["Date."+funcName+" = function(input){","var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;","input = String(input);","d = new Date();","y = d.getFullYear();","m = d.getMonth();","d = d.getDate();","var results = input.match(Date.parseRegexes["+regexNum+"]);","if (results && results.length > 0) {\n"].join('\n'),regex="",special=false,ch='';Date.parseFunctions[format]=funcName;for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}
+eval(code.substring(0,code.length-3)+";}");},createParser:function(){var code=["Date.{0} = function(input){","var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;","input = String(input);","d = new Date();","y = d.getFullYear();","m = d.getMonth();","d = d.getDate();","var results = input.match(Date.parseRegexes[{1}]);","if(results && results.length > 0){","{2}","if(u){","v = new Date(u * 1000);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){","v = new Date(y, m, d, h, i, s, ms);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0){","v = new Date(y, m, d, h, i, s);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0){","v = new Date(y, m, d, h, i);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0){","v = new Date(y, m, d, h);","}else if (y >= 0 && m >= 0 && d > 0){","v = new Date(y, m, d);","}else if (y >= 0 && m >= 0){","v = new Date(y, m);","}else if (y >= 0){","v = new Date(y);","}","}","return (v && (z != null || o != null))?"
++" (Ext.type(z) == 'number' ? v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - z) :"
++" v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn))) : v;","}"].join('\n');return function(format){var funcName="parse"+Date.parseFunctions.count++,regexNum=Date.parseRegexes.length,currentGroup=1,calc="",regex="",special=false,ch="";Date.parseFunctions[format]=funcName;for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}
else if(special){special=false;regex+=String.escape(ch);}
-else{var obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}
-code+=["if (u){","v = new Date(u * 1000);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){","v = new Date(y, m, d, h, i, s, ms);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0){","v = new Date(y, m, d, h, i, s);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0){","v = new Date(y, m, d, h, i);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0){","v = new Date(y, m, d, h);","}else if (y >= 0 && m >= 0 && d > 0){","v = new Date(y, m, d);","}else if (y >= 0 && m >= 0){","v = new Date(y, m);","}else if (y >= 0){","v = new Date(y);","}","}","return (v && (z != null || o != null))?"
-+" (Ext.type(z) == 'number' ? v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - z) :"
-+" v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn))) : v;","}"].join('\n');Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$","i");eval(code);},parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(Date.getShortDayName(i)),++i);return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:0,c:null,s:"(?:\\d{1,3}"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(Date.getShortMonthName(i)),++i);return Ext.applyIf({s:"("+a.join("|")+")"},$f("F"));},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return $f("Y");},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\n"
+else{var obj=$f(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){calc+=obj.c;}}}
+Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$","i");eval(xf(code,funcName,regexNum,calc));}}(),parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(Date.getShortDayName(i)),++i);return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:0,c:null,s:"(?:\\d{1,3})"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(Date.getShortMonthName(i)),++i);return Ext.applyIf({s:"("+a.join("|")+")"},$f("F"));},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return $f("Y");},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\n"
+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (results[{0}] == 'am') {\n"
+"if (h == 12) { h = 0; }\n"
+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"},A:{g:1,c:"if (results[{0}] == 'AM') {\n"
Modified: mickael/trunk/ext/v3.0.0-a1/build/util/History-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/util/History-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/util/History-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -13,7 +13,7 @@
function updateIFrame(token){var html=['<html><body><div id="state">',token,'</div></body></html>'].join('');try{var doc=iframe.contentWindow.document;doc.open();doc.write(html);doc.close();return true;}catch(e){return false;}}
function checkIFrame(){if(!iframe.contentWindow||!iframe.contentWindow.document){setTimeout(checkIFrame,10);return;}
var doc=iframe.contentWindow.document;var elem=doc.getElementById("state");var token=elem?elem.innerText:null;var hash=getHash();setInterval(function(){doc=iframe.contentWindow.document;elem=doc.getElementById("state");var newtoken=elem?elem.innerText:null;var newHash=getHash();if(newtoken!==token){token=newtoken;handleStateChange(token);top.location.hash=token;hash=token;doSave();}else if(newHash!==hash){hash=newHash;updateIFrame(newHash);}},50);ready=true;Ext.History.fireEvent('ready',Ext.History);}
-function startUp(){currentToken=hiddenField.value;if(Ext.isIE){checkIFrame();}else{var hash=getHash();setInterval(function(){var newHash=getHash();if(newHash!==hash){hash=newHash;handleStateChange(hash);doSave();}},50);ready=true;Ext.History.fireEvent('ready',Ext.History);}}
+function startUp(){currentToken=hiddenField.value?hiddenField.value:getHash();if(Ext.isIE){checkIFrame();}else{var hash=getHash();setInterval(function(){var newHash=getHash();if(newHash!==hash){hash=newHash;handleStateChange(hash);doSave();}},50);ready=true;Ext.History.fireEvent('ready',Ext.History);}}
return{fieldId:'x-history-field',iframeId:'x-history-frame',events:{},init:function(onReady,scope){if(ready){Ext.callback(onReady,scope,[this]);return;}
if(!Ext.isReady){Ext.onReady(function(){Ext.History.init(onReady,scope);});return;}
hiddenField=Ext.getDom(Ext.History.fieldId);if(Ext.isIE){iframe=Ext.getDom(Ext.History.iframeId);}
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/Editor-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/Editor-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/Editor-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -7,7 +7,9 @@
*/
-Ext.Editor=function(field,config){this.field=field;Ext.Editor.superclass.constructor.call(this,config);};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey");},onRender:function(ct,position){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:ct,shim:this.shim,shadowOffset:4,id:this.id,constrain:this.constrain});this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!='title'){this.field.msgTarget='qtip';}
+Ext.Editor=function(field,config){if(field.field){this.field=Ext.create(field.field,'textfield');config=Ext.apply({},field);delete config.field;}else{this.field=field;}
+Ext.Editor.superclass.constructor.call(this,config);};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey");},onRender:function(ct,position){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:ct,shim:this.shim,shadowOffset:this.shadowOffset||4,id:this.id,constrain:this.constrain});if(this.zIndex){this.el.setZIndex(this.zIndex);}
+this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!='title'){this.field.msgTarget='qtip';}
this.field.inEditor=true;this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute('autocomplete','off');}
this.field.on("specialkey",this.onSpecialKey,this);if(this.swallowKeys){this.field.el.swallowEvent(['keydown','keypress']);}
this.field.show();this.field.on("blur",this.onBlur,this);if(this.field.grow){this.field.on("autosize",this.el.sync,this.el,{delay:1});}},onSpecialKey:function(field,e){var key=e.getKey();if(this.completeOnEnter&&key==e.ENTER){e.stopEvent();this.completeEdit();}else if(this.cancelOnEsc&&key==e.ESC){this.cancelEdit();}else{this.fireEvent('specialkey',field,e);}
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/Panel-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/Panel-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/Panel-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -36,7 +36,7 @@
if(this.tools){var ts=this.tools;this.tools={};this.addTool.apply(this,ts);}else{this.tools={};}
if(this.buttons&&this.buttons.length>0){this.fbar=new Ext.Toolbar({items:this.buttons,toolbarCls:'x-panel-fbar'});}
if(this.fbar){this.fbar=Ext.create(this.fbar,'toolbar');if(this.fbar.items){this.fbar.items.each(function(c){c.minWidth=this.minButtonWidth;},this);}
-this.fbar.toolbarCls='x-panel-fbar';var bct=this.footer.createChild({cls:'x-panel-btns x-panel-btns-'+this.buttonAlign});this.fbar.render(bct);bct.createChild({cls:'x-clear'});}
+this.fbar.toolbarCls='x-panel-fbar';var bct=this.footer.createChild({cls:'x-panel-btns x-panel-btns-'+this.buttonAlign});this.fbar.ownerCt=this;this.fbar.render(bct);bct.createChild({cls:'x-clear'});}
if(this.tbar&&this.topToolbar){if(Ext.isArray(this.topToolbar)){this.topToolbar=new Ext.Toolbar(this.topToolbar);}else if(!this.topToolbar.events){this.topToolbar=Ext.create(this.topToolbar,'toolbar');}
this.topToolbar.ownerCt=this;this.topToolbar.render(this.tbar);}
if(this.bbar&&this.bottomToolbar){if(Ext.isArray(this.bottomToolbar)){this.bottomToolbar=new Ext.Toolbar(this.bottomToolbar);}else if(!this.bottomToolbar.events){this.bottomToolbar=Ext.create(this.bottomToolbar,'toolbar');}
@@ -47,7 +47,9 @@
for(var i=0,a=arguments,len=a.length;i<len;i++){var tc=a[i];if(!this.tools[tc.id]){var overCls='x-tool-'+tc.id+'-over';var t=this.toolTemplate.insertFirst((tc.align!=='left')?this[this.toolTarget]:this[this.toolTarget].child('span'),tc,true);this.tools[tc.id]=t;t.enableDisplayMode('block');t.on('click',this.createToolHandler(t,tc,overCls,this));if(tc.on){t.on(tc.on);}
if(tc.hidden){t.hide();}
if(tc.qtip){if(typeof tc.qtip=='object'){Ext.QuickTips.register(Ext.apply({target:t.id},tc.qtip));}else{t.dom.qtip=tc.qtip;}}
-t.addClassOnOver(overCls);}}},onShow:function(){if(this.floating){return this.el.show();}
+t.addClassOnOver(overCls);}}},doLayout:function(shallow){Ext.Panel.superclass.doLayout.call(this,shallow);if(this.topToolbar){this.topToolbar.doLayout();}
+if(this.bottomToolbar){this.bottomToolbar.doLayout();}
+if(this.fbar){this.fbar.doLayout();}},onShow:function(){if(this.floating){return this.el.show();}
Ext.Panel.superclass.onShow.call(this);},onHide:function(){if(this.floating){return this.el.hide();}
Ext.Panel.superclass.onHide.call(this);},createToolHandler:function(t,tc,overCls,panel){return function(e){t.removeClass(overCls);e.stopEvent();if(tc.handler){tc.handler.call(tc.scope||t,e,t,panel);}};},afterRender:function(){if(this.floating&&!this.hidden&&!this.initHidden){this.el.show();}
if(this.title){this.setTitle(this.title);}
@@ -62,10 +64,11 @@
var doAnim=animate===true||(animate!==false&&this.animCollapse);this.beforeEffect();this.onCollapse(doAnim,animate);return this;},onCollapse:function(doAnim,animArg){if(doAnim){this[this.collapseEl].slideOut(this.slideAnchor,Ext.apply(this.createEffect(animArg||true,this.afterCollapse,this),this.collapseDefaults));}else{this[this.collapseEl].hide();this.afterCollapse();}},afterCollapse:function(){this.collapsed=true;this.el.addClass(this.collapsedCls);this.afterEffect();this.fireEvent('collapse',this);},expand:function(animate){if(!this.collapsed||this.el.hasFxBlock()||this.fireEvent('beforeexpand',this,animate)===false){return;}
var doAnim=animate===true||(animate!==false&&this.animCollapse);this.el.removeClass(this.collapsedCls);this.beforeEffect();this.onExpand(doAnim,animate);return this;},onExpand:function(doAnim,animArg){if(doAnim){this[this.collapseEl].slideIn(this.slideAnchor,Ext.apply(this.createEffect(animArg||true,this.afterExpand,this),this.expandDefaults));}else{this[this.collapseEl].show();this.afterExpand();}},afterExpand:function(){this.collapsed=false;this.afterEffect();this.fireEvent('expand',this);},toggleCollapse:function(animate){this[this.collapsed?'expand':'collapse'](animate);return this;},onDisable:function(){if(this.rendered&&this.maskDisabled){this.el.mask();}
Ext.Panel.superclass.onDisable.call(this);},onEnable:function(){if(this.rendered&&this.maskDisabled){this.el.unmask();}
-Ext.Panel.superclass.onEnable.call(this);},onResize:function(w,h){if(w!==undefined||h!==undefined){if(!this.collapsed){if(typeof w=='number'){w=this.adjustBodyWidth(w-this.getFrameWidth());this.body.setWidth(w);}else if(w=='auto'){this.body.setWidth(w);}
+Ext.Panel.superclass.onEnable.call(this);},onResize:function(w,h){if(w!==undefined||h!==undefined){if(!this.collapsed){if(typeof w=='number'){w=this.adjustBodyWidth(w-this.getFrameWidth());if(this.tbar){this.tbar.setWidth(w);if(this.topToolbar){this.topToolbar.setSize(w);}}
+if(this.bbar){this.bbar.setWidth(w);if(this.bottomToolbar){this.bottomToolbar.setSize(w);}}
+if(this.fbar){this.fbar.setSize(w-this.fbar.container.getFrameWidth('lr'));}
+this.body.setWidth(w);}else if(w=='auto'){this.body.setWidth(w);}
if(typeof h=='number'){h=this.adjustBodyHeight(h-this.getFrameHeight());this.body.setHeight(h);}else if(h=='auto'){this.body.setHeight(h);}
-if(this.tbar){this.tbar.setWidth(w);if(this.topToolbar){this.topToolbar.setSize(w);}}
-if(this.bbar){this.bbar.setWidth(w);if(this.bottomToolbar){this.bottomToolbar.setSize(w);}}
if(this.disabled&&this.el._mask){this.el._mask.setSize(this.el.dom.clientWidth,this.el.getHeight());}}else{this.queuedBodySize={width:w,height:h};if(!this.queuedExpand&&this.allowQueuedExpand!==false){this.queuedExpand=true;this.on('expand',function(){delete this.queuedExpand;this.onResize(this.queuedBodySize.width,this.queuedBodySize.height);this.doLayout();},this,{single:true});}}
this.fireEvent('bodyresize',this,w,h);}
this.syncShadow();},adjustBodyHeight:function(h){return h;},adjustBodyWidth:function(w){return w;},onPosition:function(){this.syncShadow();},getFrameWidth:function(){var w=this.el.getFrameWidth('lr');if(this.frame){var l=this.bwrap.dom.firstChild;w+=(Ext.fly(l).getFrameWidth('l')+Ext.fly(l.firstChild).getFrameWidth('r'));var mc=this.bwrap.dom.firstChild.firstChild.firstChild;w+=Ext.fly(mc).getFrameWidth('lr');}
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/Window-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/Window-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/Window-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -8,7 +8,7 @@
Ext.Window=Ext.extend(Ext.Panel,{baseCls:'x-window',resizable:true,draggable:true,closable:true,constrain:false,constrainHeader:false,plain:false,minimizable:false,maximizable:false,minHeight:100,minWidth:200,expandOnShow:true,closeAction:'close',collapsible:false,initHidden:true,monitorResize:true,elements:'header,body',frame:true,floating:true,initComponent:function(){Ext.Window.superclass.initComponent.call(this);this.addEvents('resize','maximize','minimize','restore');},getState:function(){return Ext.apply(Ext.Window.superclass.getState.call(this)||{},this.getBox());},onRender:function(ct,position){Ext.Window.superclass.onRender.call(this,ct,position);if(this.plain){this.el.addClass('x-window-plain');}
-this.focusEl=this.el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1",html:" "});this.focusEl.swallowEvent('click',true);this.proxy=this.el.createProxy("x-window-proxy");this.proxy.enableDisplayMode('block');if(this.modal){this.mask=this.container.createChild({cls:"ext-el-mask"},this.el.dom);this.mask.enableDisplayMode("block");this.mask.hide();}},initEvents:function(){Ext.Window.superclass.initEvents.call(this);if(this.animateTarget){this.setAnimateTarget(this.animateTarget);}
+this.focusEl=this.el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1",html:" "});this.focusEl.swallowEvent('click',true);this.proxy=this.el.createProxy("x-window-proxy");this.proxy.enableDisplayMode('block');if(this.modal){this.mask=this.container.createChild({cls:"ext-el-mask"},this.el.dom);this.mask.enableDisplayMode("block");this.mask.hide();this.mask.on('click',this.focus,this);}},initEvents:function(){Ext.Window.superclass.initEvents.call(this);if(this.animateTarget){this.setAnimateTarget(this.animateTarget);}
if(this.resizable){this.resizer=new Ext.Resizable(this.el,{minWidth:this.minWidth,minHeight:this.minHeight,handles:this.resizeHandles||"all",pinned:true,resizeElement:this.resizerAction});this.resizer.window=this;this.resizer.on("beforeresize",this.beforeResize,this);}
if(this.draggable){this.header.addClass("x-window-draggable");}
this.initTools();this.el.on("mousedown",this.toFront,this);this.manager=this.manager||Ext.WindowMgr;this.manager.register(this);this.hidden=true;if(this.maximized){this.maximized=false;this.maximize();}
@@ -18,8 +18,8 @@
if(this.maximizable){this.addTool({id:'maximize',handler:this.maximize.createDelegate(this,[])});this.addTool({id:'restore',handler:this.restore.createDelegate(this,[]),hidden:true});this.header.on('dblclick',this.toggleMaximize,this);}
if(this.closable){this.addTool({id:'close',handler:this[this.closeAction].createDelegate(this,[])});}},resizerAction:function(){var box=this.proxy.getBox();this.proxy.hide();this.window.handleResize(box);return box;},beforeResize:function(){this.resizer.minHeight=Math.max(this.minHeight,this.getFrameHeight()+40);this.resizer.minWidth=Math.max(this.minWidth,this.getFrameWidth()+40);this.resizeBox=this.el.getBox();},updateHandles:function(){if(Ext.isIE&&this.resizer){this.resizer.syncHandleHeight();this.el.repaint();}},handleResize:function(box){var rz=this.resizeBox;if(rz.x!=box.x||rz.y!=box.y){this.updateBox(box);}else{this.setSize(box);}
this.focus();this.updateHandles();this.saveState();if(this.layout){this.doLayout();}
-this.fireEvent("resize",this,box.width,box.height);},focus:function(){var f=this.focusEl,db=this.defaultButton,t=typeof db;if(t!='undefined'){if(t=='number'){f=this.buttons[db];}else if(t=='string'){f=Ext.getCmp(db);}else{f=db;}}
-f.focus.defer(10,f);},setAnimateTarget:function(el){el=Ext.get(el);this.animateTarget=el;},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var xy=this.el.getAlignToXY(this.container,'c-c');var pos=this.el.translatePoints(xy[0],xy[1]);this.x=this.x===undefined?pos.left:this.x;this.y=this.y===undefined?pos.top:this.y;}
+this.fireEvent("resize",this,box.width,box.height);},focus:function(){var f=this.focusEl,db=this.defaultButton,t=typeof db;if(t!='undefined'){if(t=='number'&&this.fbar){f=this.fbar.items.get(db);}else if(t=='string'){f=Ext.getCmp(db);}else{f=db;}}
+f=f||this.focusEl;f.focus.defer(10,f);},setAnimateTarget:function(el){el=Ext.get(el);this.animateTarget=el;},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var xy=this.el.getAlignToXY(this.container,'c-c');var pos=this.el.translatePoints(xy[0],xy[1]);this.x=this.x===undefined?pos.left:this.x;this.y=this.y===undefined?pos.top:this.y;}
this.el.setLeftTop(this.x,this.y);if(this.expandOnShow){this.expand(false);}
if(this.modal){Ext.getBody().addClass("x-body-masked");this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.mask.show();}},show:function(animateTarget,cb,scope){if(!this.rendered){this.render(Ext.getBody());}
if(this.hidden===false){this.toFront();return;}
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/form/DateField-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/form/DateField-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/form/DateField-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -9,14 +9,14 @@
Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:'x-form-date-trigger',showToday:true,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue);}
if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue);}
-this.ddMatch=null;this.initDisabledDays();},initDisabledDays:function(){if(this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i<dd.length;i++){re+=dd[i];if(i!=dd.length-1)re+="|";}
+this.disabledDatesRE=null;this.initDisabledDays();},initDisabledDays:function(){if(this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i<dd.length;i++){re+=dd[i];if(i!=dd.length-1)re+="|";}
this.disabledDatesRE=new RegExp(re+")");}},setDisabledDates:function(dd){this.disabledDates=dd;this.initDisabledDays();if(this.menu){this.menu.picker.setDisabledDates(this.disabledDatesRE);}},setDisabledDays:function(dd){this.disabledDays=dd;if(this.menu){this.menu.picker.setDisabledDays(dd);}},setMinValue:function(dt){this.minValue=(typeof dt=="string"?this.parseDate(dt):dt);if(this.menu){this.menu.picker.setMinDate(this.minValue);}},setMaxValue:function(dt){this.maxValue=(typeof dt=="string"?this.parseDate(dt):dt);if(this.menu){this.menu.picker.setMaxDate(this.maxValue);}},validateValue:function(value){value=this.formatDate(value);if(!Ext.form.DateField.superclass.validateValue.call(this,value)){return false;}
if(value.length<1){return true;}
var svalue=value;value=this.parseDate(value);if(!value){this.markInvalid(String.format(this.invalidText,svalue,this.format));return false;}
var time=value.getTime();if(this.minValue&&time<this.minValue.getTime()){this.markInvalid(String.format(this.minText,this.formatDate(this.minValue)));return false;}
if(this.maxValue&&time>this.maxValue.getTime()){this.markInvalid(String.format(this.maxText,this.formatDate(this.maxValue)));return false;}
if(this.disabledDays){var day=value.getDay();for(var i=0;i<this.disabledDays.length;i++){if(day===this.disabledDays[i]){this.markInvalid(this.disabledDaysText);return false;}}}
-var fvalue=this.formatDate(value);if(this.ddMatch&&this.ddMatch.test(fvalue)){this.markInvalid(String.format(this.disabledDatesText,fvalue));return false;}
+var fvalue=this.formatDate(value);if(this.disabledDatesRE&&this.disabledDatesRE.test(fvalue)){this.markInvalid(String.format(this.disabledDatesText,fvalue));return false;}
return true;},validateBlur:function(){return!this.menu||!this.menu.isVisible();},getValue:function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this))||"";},setValue:function(date){Ext.form.DateField.superclass.setValue.call(this,this.formatDate(this.parseDate(date)));},parseDate:function(value){if(!value||Ext.isDate(value)){return value;}
var v=Date.parseDate(value,this.format);if(!v&&this.altFormats){if(!this.altFormatsArray){this.altFormatsArray=this.altFormats.split("|");}
for(var i=0,len=this.altFormatsArray.length;i<len&&!v;i++){v=Date.parseDate(value,this.altFormatsArray[i]);}}
@@ -24,4 +24,4 @@
if(this.wrap){this.wrap.remove();}
Ext.form.DateField.superclass.onDestroy.call(this);},formatDate:function(date){return Ext.isDate(date)?date.dateFormat(this.format):date;},menuListeners:{select:function(m,d){this.setValue(d);},show:function(){this.onFocus();},hide:function(){this.focus.defer(10,this);var ml=this.menuListeners;this.menu.un("select",ml.select,this);this.menu.un("show",ml.show,this);this.menu.un("hide",ml.hide,this);}},onTriggerClick:function(){if(this.disabled){return;}
if(this.menu==null){this.menu=new Ext.menu.DateMenu();}
-Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.ddMatch,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?");},beforeBlur:function(){var v=this.parseDate(this.getRawValue());if(v){this.setValue(v);}}});Ext.reg('datefield',Ext.form.DateField);
\ No newline at end of file
+Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.disabledDatesRE,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?");},beforeBlur:function(){var v=this.parseDate(this.getRawValue());if(v){this.setValue(v);}}});Ext.reg('datefield',Ext.form.DateField);
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/form/Field-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/form/Field-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/form/Field-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -14,7 +14,7 @@
this.el.addClass('x-form-'+type);}
if(this.readOnly){this.el.dom.readOnly=true;}
if(this.tabIndex!==undefined){this.el.dom.setAttribute('tabIndex',this.tabIndex);}
-this.el.addClass([this.fieldClass,this.cls]);},getItemCt:function(){return this.el.up('.x-form-item',4);},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else if(this.el.dom.value.length>0&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value);}
+this.el.addClass([this.fieldClass,this.cls]);},getItemCt:function(){return this.el.up('.x-form-item',4);},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else if(!Ext.isEmpty(this.el.dom.value)&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value);}
this.originalValue=this.getValue();},isDirty:function(){if(this.disabled){return false;}
return String(this.getValue())!==String(this.originalValue);},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();this.initValue();},fireKey:function(e){if(e.isSpecialKey()){this.fireEvent("specialkey",this,e);}},reset:function(){this.setValue(this.originalValue);this.clearInvalid();},initEvents:function(){this.el.on(Ext.isIE||Ext.isSafari3?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);var o=this.inEditor&&Ext.isWindows&&Ext.isGecko?{buffer:10}:null;this.el.on("blur",this.onBlur,this,o);},onFocus:function(){if(!Ext.isOpera&&this.focusClass){this.el.addClass(this.focusClass);}
if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this);}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(!Ext.isOpera&&this.focusClass){this.el.removeClass(this.focusClass);}
@@ -29,7 +29,7 @@
this.fireEvent('valid',this);},getMessageHandler:function(){return Ext.form.MessageTargets[this.msgTarget];},getErrorCt:function(){return this.el.findParent('.x-form-element',5,true)||this.el.findParent('.x-form-field-wrap',5,true);},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,'tl-tr',[2,0]);},getRawValue:function(){var v=this.rendered?this.el.getValue():Ext.value(this.value,'');if(v===this.emptyText){v='';}
return v;},getValue:function(){if(!this.rendered){return this.value;}
var v=this.el.getValue();if(v===this.emptyText||v===undefined){v='';}
-return v;},setRawValue:function(v){return this.el.dom.value=(v===null||v===undefined?'':v);},setValue:function(v){this.value=v;if(this.rendered){this.el.dom.value=(v===null||v===undefined?'':v);this.validate();}},adjustSize:function(w,h){var s=Ext.form.Field.superclass.adjustSize.call(this,w,h);s.width=this.adjustWidth(this.el.dom.tagName,s.width);if(this.offsetCt){var ct=this.getItemCt();s.width-=ct.getFrameWidth('lr');s.height-=ct.getFrameWidth('tb');}
+return v;},setRawValue:function(v){return this.el.dom.value=(v===null||v===undefined?'':v);},setValue:function(v){this.value=v;if(this.rendered){this.el.dom.value=(v===null||v===undefined?'':v);this.validate();}},append:function(v){this.setValue([this.getValue(),v].join(''));},adjustSize:function(w,h){var s=Ext.form.Field.superclass.adjustSize.call(this,w,h);s.width=this.adjustWidth(this.el.dom.tagName,s.width);if(this.offsetCt){var ct=this.getItemCt();s.width-=ct.getFrameWidth('lr');s.height-=ct.getFrameWidth('tb');}
return s;},adjustWidth:function(tag,w){tag=tag.toLowerCase();if(typeof w=='number'&&!Ext.isSafari){if(Ext.isIE&&(tag=='input'||tag=='textarea')){if(tag=='input'&&!Ext.isStrict){return this.inEditor?w:w-3;}
if(tag=='input'&&Ext.isStrict){return w-(Ext.isIE6?4:1);}
if(tag=='textarea'&&Ext.isStrict){return w-2;}}else if(Ext.isOpera&&Ext.isStrict){if(tag=='input'){return w+2;}
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/form/Form-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/form/Form-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/form/Form-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -7,8 +7,8 @@
*/
-Ext.FormPanel=Ext.extend(Ext.Panel,{buttonAlign:'center',minButtonWidth:75,labelAlign:'left',monitorValid:false,monitorPoll:200,layout:'form',initComponent:function(){this.form=this.createForm();if(this.fileUpload){this.bodyCfg.enctype='multipart/form-data';}
-Ext.FormPanel.superclass.initComponent.call(this);this.bodyCfg={tag:'form',cls:this.baseCls+'-body',method:this.method||'POST',id:this.formId||Ext.id()};this.initItems();this.addEvents('clientvalidation');this.relayEvents(this.form,['beforeaction','actionfailed','actioncomplete']);},createForm:function(){delete this.initialConfig.listeners;return new Ext.form.BasicForm(null,this.initialConfig);},initFields:function(){var f=this.form;var formPanel=this;var fn=function(c){if(c.isFormField){f.add(c);}if(c.isFieldWrap){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});f.add(c.field);}else if(c.doLayout&&c!=formPanel){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});if(c.items){c.items.each(fn);}}}
+Ext.FormPanel=Ext.extend(Ext.Panel,{buttonAlign:'center',minButtonWidth:75,labelAlign:'left',monitorValid:false,monitorPoll:200,layout:'form',initComponent:function(){this.form=this.createForm();Ext.FormPanel.superclass.initComponent.call(this);this.bodyCfg={tag:'form',cls:this.baseCls+'-body',method:this.method||'POST',id:this.formId||Ext.id()};if(this.fileUpload){this.bodyCfg.enctype='multipart/form-data';}
+this.initItems();this.addEvents('clientvalidation');this.relayEvents(this.form,['beforeaction','actionfailed','actioncomplete']);},createForm:function(){delete this.initialConfig.listeners;return new Ext.form.BasicForm(null,this.initialConfig);},initFields:function(){var f=this.form;var formPanel=this;var fn=function(c){if(c.isFormField){f.add(c);}if(c.isFieldWrap){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});f.add(c.field);}else if(c.doLayout&&c!=formPanel){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});if(c.items){c.items.each(fn);}}}
this.items.each(fn);},getLayoutTarget:function(){return this.form.el;},getForm:function(){return this.form;},onRender:function(ct,position){this.initFields();Ext.FormPanel.superclass.onRender.call(this,ct,position);this.form.initEl(this.body);},beforeDestroy:function(){Ext.FormPanel.superclass.beforeDestroy.call(this);this.stopMonitoring();Ext.destroy(this.form);},initEvents:function(){Ext.FormPanel.superclass.initEvents.call(this);this.items.on('remove',this.onRemove,this);this.items.on('add',this.onAdd,this);if(this.monitorValid){this.startMonitoring();}},onAdd:function(ct,c){if(c.isFormField){this.form.add(c);}},onRemove:function(c){if(c.isFormField){Ext.destroy(c.container.up('.x-form-item'));this.form.remove(c);}},startMonitoring:function(){if(!this.bound){this.bound=true;Ext.TaskMgr.start({run:this.bindHandler,interval:this.monitorPoll||200,scope:this});}},stopMonitoring:function(){this.bound=false;},load:function(){this.form.load.apply(this.form,arguments);},onDisable:function(){Ext.FormPanel.superclass.onDisable.call(this);if(this.form){this.form.items.each(function(){this.disable();});}},onEnable:function(){Ext.FormPanel.superclass.onEnable.call(this);if(this.form){this.form.items.each(function(){this.enable();});}},bindHandler:function(){if(!this.bound){return false;}
var valid=true;this.form.items.each(function(f){if(!f.isValid(true)){valid=false;return false;}});if(this.buttons){for(var i=0,len=this.buttons.length;i<len;i++){var btn=this.buttons[i];if(btn.formBind===true&&btn.disabled===valid){btn.setDisabled(!valid);}}}
this.fireEvent('clientvalidation',this,valid);}});Ext.reg('form',Ext.FormPanel);Ext.form.FormPanel=Ext.FormPanel;
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/Column-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/Column-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/Column-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -7,11 +7,13 @@
*/
-Ext.grid.Column=function(config){Ext.apply(this,config);if(typeof this.renderer=="string"){this.renderer=Ext.util.Format[c.renderer];}
+Ext.grid.Column=function(config){Ext.apply(this,config);if(typeof this.renderer=="string"){this.renderer=Ext.util.Format[this.renderer];}
if(typeof this.id=="undefined"){this.id=++Ext.grid.Column.AUTO_ID;}
-if(this.editor){if(this.editor.isFormField){this.editor=new Ext.grid.GridEditor(this.editor);}else if(this.editor.xtype&&!this.editor.events){this.editor=new Ext.grid.GridEditor(Ext.create(this.editor,'textfield'));}}}
+if(this.editor){if(this.editor.xtype&&!this.editor.events){this.editor=Ext.create(this.editor,'textfield');}}}
Ext.grid.Column.AUTO_ID=0;Ext.grid.Column.prototype={isColumn:true,renderer:function(value){if(typeof value=="string"&&value.length<1){return" ";}
-return value;}};Ext.grid.BooleanColumn=Ext.extend(Ext.grid.Column,{renderer:function(value){if(value===undefined){return" ";}
+return value;},getEditor:function(rowIndex){return this.editable!==false?this.editor:null;},getCellEditor:function(rowIndex){var editor=this.getEditor(rowIndex);if(editor){if(!editor.startEdit){if(!editor.gridEditor){editor.gridEditor=new Ext.grid.GridEditor(editor);}
+return editor.gridEditor;}else if(editor.startEdit){return editor;}}
+return null;}};Ext.grid.BooleanColumn=Ext.extend(Ext.grid.Column,{renderer:function(value){if(value===undefined){return" ";}
if(!value||value==='false'){return"false";}
return'true';}});Ext.grid.NumberColumn=Ext.extend(Ext.grid.Column,{format:'0,000.00',constructor:function(cfg){this.supr().constructor.apply(this,arguments);this.renderer=Ext.util.Format.numberRenderer(this.format);}});Ext.grid.DateColumn=Ext.extend(Ext.grid.Column,{format:'m/d/Y',constructor:function(cfg){this.supr().constructor.apply(this,arguments);this.renderer=Ext.util.Format.dateRenderer(this.format);}});Ext.grid.TemplateColumn=Ext.extend(Ext.grid.Column,{constructor:function(cfg){this.supr().constructor.apply(this,arguments);var tpl=typeof this.tpl=='object'?this.tpl:new Ext.XTemplate(this.tpl);this.renderer=function(value,p,r){return tpl.apply(r.data);}
this.tpl=tpl;}});Ext.grid.Column.types={gridcolumn:Ext.grid.Column,booleancolumn:Ext.grid.BooleanColumn,numbercolumn:Ext.grid.NumberColumn,datecolumn:Ext.grid.DateColumn,templatecolumn:Ext.grid.TemplateColumn};
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/ColumnModel-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/ColumnModel-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/ColumnModel-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -8,7 +8,7 @@
Ext.grid.ColumnModel=function(config){if(config.columns){Ext.apply(this,config);this.setConfig(config.columns,true);}else{this.setConfig(config,true);}
-this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","columnlockchange","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{defaultWidth:100,defaultSortable:false,getColumnId:function(index){return this.config[index].id;},setConfig:function(config,initial){if(!initial){delete this.totalWidth;for(var i=0,len=this.config.length;i<len;i++){var c=this.config[i];if(c.editor){c.editor.destroy();}}}
+this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","columnlockchange","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{defaultWidth:100,defaultSortable:false,getColumnId:function(index){return this.config[index].id;},getColumnAt:function(index){return this.config[index];},setConfig:function(config,initial){if(!initial){delete this.totalWidth;for(var i=0,len=this.config.length;i<len;i++){var c=this.config[i];if(c.editor){c.editor.destroy();}}}
this.config=config;this.lookup={};for(var i=0,len=config.length;i<len;i++){var c=config[i];if(!c.isColumn){var cls=Ext.grid.Column.types[c.xtype||'gridcolumn'];c=new cls(c);config[i]=c;}
this.lookup[c.id]=c;}
if(!initial){this.fireEvent('configchange',this);}},getColumnById:function(id){return this.lookup[id];},getIndexById:function(id){for(var i=0,len=this.config.length;i<len;i++){if(this.config[i].id==id){return i;}}
@@ -21,5 +21,5 @@
return this.config[col].sortable;},isMenuDisabled:function(col){return!!this.config[col].menuDisabled;},getRenderer:function(col){if(!this.config[col].renderer){return Ext.grid.ColumnModel.defaultRenderer;}
return this.config[col].renderer;},setRenderer:function(col,fn){this.config[col].renderer=fn;},getColumnWidth:function(col){return this.config[col].width||this.defaultWidth;},setColumnWidth:function(col,width,suppressEvent){this.config[col].width=width;this.totalWidth=null;if(!suppressEvent){this.fireEvent("widthchange",this,col,width);}},getTotalWidth:function(includeHidden){if(!this.totalWidth){this.totalWidth=0;for(var i=0,len=this.config.length;i<len;i++){if(includeHidden||!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);}}}
return this.totalWidth;},getColumnHeader:function(col){return this.config[col].header;},setColumnHeader:function(col,header){this.config[col].header=header;this.fireEvent("headerchange",this,col,header);},getColumnTooltip:function(col){return this.config[col].tooltip;},setColumnTooltip:function(col,tooltip){this.config[col].tooltip=tooltip;},getDataIndex:function(col){return this.config[col].dataIndex;},setDataIndex:function(col,dataIndex){this.config[col].dataIndex=dataIndex;},findColumnIndex:function(dataIndex){var c=this.config;for(var i=0,len=c.length;i<len;i++){if(c[i].dataIndex==dataIndex){return i;}}
-return-1;},isCellEditable:function(colIndex,rowIndex){return(this.config[colIndex].editable||(typeof this.config[colIndex].editable=="undefined"&&this.config[colIndex].editor))?true:false;},getCellEditor:function(colIndex,rowIndex){return this.config[colIndex].editor;},setEditable:function(col,editable){this.config[col].editable=editable;},isHidden:function(colIndex){return this.config[colIndex].hidden;},isFixed:function(colIndex){return this.config[colIndex].fixed;},isResizable:function(colIndex){return colIndex>=0&&this.config[colIndex].resizable!==false&&this.config[colIndex].fixed!==true;},setHidden:function(colIndex,hidden){var c=this.config[colIndex];if(c.hidden!==hidden){c.hidden=hidden;this.totalWidth=null;this.fireEvent("hiddenchange",this,colIndex,hidden);}},setEditor:function(col,editor){this.config[col].editor=editor;}});Ext.grid.ColumnModel.defaultRenderer=function(value){if(typeof value=="string"&&value.length<1){return" ";}
+return-1;},isCellEditable:function(colIndex,rowIndex){return(this.config[colIndex].editable||(typeof this.config[colIndex].editable=="undefined"&&this.config[colIndex].editor))?true:false;},getCellEditor:function(colIndex,rowIndex){return this.config[colIndex].getCellEditor(rowIndex);},setEditable:function(col,editable){this.config[col].editable=editable;},isHidden:function(colIndex){return this.config[colIndex].hidden;},isFixed:function(colIndex){return this.config[colIndex].fixed;},isResizable:function(colIndex){return colIndex>=0&&this.config[colIndex].resizable!==false&&this.config[colIndex].fixed!==true;},setHidden:function(colIndex,hidden){var c=this.config[colIndex];if(c.hidden!==hidden){c.hidden=hidden;this.totalWidth=null;this.fireEvent("hiddenchange",this,colIndex,hidden);}},setEditor:function(col,editor){this.config[col].editor=editor;}});Ext.grid.ColumnModel.defaultRenderer=function(value){if(typeof value=="string"&&value.length<1){return" ";}
return value;};
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/GridView-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/GridView-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/grid/GridView-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -24,9 +24,9 @@
return this.fly(el).findParent(this.rowSelector,this.rowSelectorDepth);},findRowIndex:function(el){var r=this.findRow(el);return r?r.rowIndex:false;},getRow:function(row){return this.getRows()[row];},getCell:function(row,col){return this.getRow(row).getElementsByTagName('td')[col];},getHeaderCell:function(index){return this.mainHd.dom.getElementsByTagName('td')[index];},addRowClass:function(row,cls){var r=this.getRow(row);if(r){this.fly(r).addClass(cls);}},removeRowClass:function(row,cls){var r=this.getRow(row);if(r){this.fly(r).removeClass(cls);}},removeRow:function(row){Ext.removeNode(this.getRow(row));this.syncFocusEl(row);},removeRows:function(firstRow,lastRow){var bd=this.mainBody.dom;for(var rowIndex=firstRow;rowIndex<=lastRow;rowIndex++){Ext.removeNode(bd.childNodes[firstRow]);}
this.syncFocusEl(firstRow);},getScrollState:function(){var sb=this.scroller.dom;return{left:sb.scrollLeft,top:sb.scrollTop};},restoreScroll:function(state){var sb=this.scroller.dom;sb.scrollLeft=state.left;sb.scrollTop=state.top;},scrollToTop:function(){this.scroller.dom.scrollTop=0;this.scroller.dom.scrollLeft=0;},syncScroll:function(){this.syncHeaderScroll();var mb=this.scroller.dom;this.grid.fireEvent("bodyscroll",mb.scrollLeft,mb.scrollTop);},syncHeaderScroll:function(){var mb=this.scroller.dom;this.innerHd.scrollLeft=mb.scrollLeft;this.innerHd.scrollLeft=mb.scrollLeft;},updateSortIcon:function(col,dir){var sc=this.sortClasses;var hds=this.mainHd.select('td').removeClass(sc);hds.item(col).addClass(sc[dir=="DESC"?1:0]);},updateAllColumnWidths:function(){var tw=this.getTotalWidth();var clen=this.cm.getColumnCount();var ws=[];for(var i=0;i<clen;i++){ws[i]=this.getColumnWidth(i);}
this.innerHd.firstChild.firstChild.style.width=tw;for(var i=0;i<clen;i++){var hd=this.getHeaderCell(i);hd.style.width=ws[i];}
-var ns=this.getRows();for(var i=0,len=ns.length;i<len;i++){ns[i].style.width=tw;ns[i].firstChild.style.width=tw;var row=ns[i].firstChild.rows[0];for(var j=0;j<clen;j++){row.childNodes[j].style.width=ws[j];}}
-this.onAllColumnWidthsUpdated(ws,tw);},updateColumnWidth:function(col,width){var w=this.getColumnWidth(col);var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var hd=this.getHeaderCell(col);hd.style.width=w;var ns=this.getRows();for(var i=0,len=ns.length;i<len;i++){ns[i].style.width=tw;ns[i].firstChild.style.width=tw;ns[i].firstChild.rows[0].childNodes[col].style.width=w;}
-this.onColumnWidthUpdated(col,w,tw);},updateColumnHidden:function(col,hidden){var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var display=hidden?'none':'';var hd=this.getHeaderCell(col);hd.style.display=display;var ns=this.getRows();for(var i=0,len=ns.length;i<len;i++){ns[i].style.width=tw;ns[i].firstChild.style.width=tw;ns[i].firstChild.rows[0].childNodes[col].style.display=display;}
+var ns=this.getRows(),row,trow;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;trow=row.firstChild.rows[0];for(var j=0;j<clen;j++){trow.childNodes[j].style.width=ws[j];}}}
+this.onAllColumnWidthsUpdated(ws,tw);},updateColumnWidth:function(col,width){var w=this.getColumnWidth(col);var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var hd=this.getHeaderCell(col);hd.style.width=w;var ns=this.getRows(),row;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;row.firstChild.rows[0].childNodes[col].style.width=w;}}
+this.onColumnWidthUpdated(col,w,tw);},updateColumnHidden:function(col,hidden){var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var display=hidden?'none':'';var hd=this.getHeaderCell(col);hd.style.display=display;var ns=this.getRows(),row;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;row.firstChild.rows[0].childNodes[col].style.display=display;}}
this.onColumnHiddenUpdated(col,hidden,tw);delete this.lastViewWidth;this.layout();},doRender:function(cs,rs,ds,startRow,colCount,stripe){var ts=this.templates,ct=ts.cell,rt=ts.row,last=colCount-1;var tstyle='width:'+this.getTotalWidth()+';';var buf=[],cb,c,p={},rp={tstyle:tstyle},r;for(var j=0,len=rs.length;j<len;j++){r=rs[j];cb=[];var rowIndex=(j+startRow);for(var i=0;i<colCount;i++){c=cs[i];p.id=c.id;p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');p.attr=p.cellAttr="";p.value=c.renderer(r.data[c.name],p,r,rowIndex,i,ds);p.style=c.style;if(p.value==undefined||p.value==="")p.value=" ";if(r.dirty&&typeof r.modified[c.name]!=='undefined'){p.css+=' x-grid3-dirty-cell';}
cb[cb.length]=ct.apply(p);}
var alt=[];if(stripe&&((rowIndex+1)%2==0)){alt[0]="x-grid3-row-alt";}
@@ -41,12 +41,13 @@
if(g.enableHdMenu!==false){if(g.enableColumnHide!==false){this.colMenu=new Ext.menu.Menu({id:g.id+"-hcols-menu"});this.colMenu.on("beforeshow",this.beforeColMenuShow,this);this.colMenu.on("itemclick",this.handleHdMenuClick,this);}
this.hmenu=new Ext.menu.Menu({id:g.id+"-hctx"});this.hmenu.add({id:"asc",text:this.sortAscText,cls:"xg-hmenu-sort-asc"},{id:"desc",text:this.sortDescText,cls:"xg-hmenu-sort-desc"});if(g.enableColumnHide!==false){this.hmenu.add('-',{id:"columns",text:this.columnsText,menu:this.colMenu,iconCls:'x-cols-icon'});}
this.hmenu.on("itemclick",this.handleHdMenuClick,this);}
+if(g.trackMouseOver){this.mainBody.on("mouseover",this.onRowOver,this);this.mainBody.on("mouseout",this.onRowOut,this);}
if(g.enableDragDrop||g.enableDrag){this.dragZone=new Ext.grid.GridDragZone(g,{ddGroup:g.ddGroup||'GridDD'});}
this.updateHeaderSortState();},layout:function(){if(!this.mainBody){return;}
var g=this.grid;var c=g.getGridEl();var csize=c.getSize(true);var vw=csize.width;if(vw<20||csize.height<20){return;}
if(g.autoHeight){this.scroller.dom.style.overflow='visible';}else{this.el.setSize(csize.width,csize.height);var hdHeight=this.mainHd.getHeight();var vh=csize.height-(hdHeight);this.scroller.setSize(vw,vh);if(this.innerHd){this.innerHd.style.width=(vw)+'px';}}
if(this.forceFit){if(this.lastViewWidth!=vw){this.fitColumns(false,false);this.lastViewWidth=vw;}}else{this.autoExpand();this.syncHeaderScroll();}
-this.onLayout(vw,vh);},onLayout:function(vw,vh){},onColumnWidthUpdated:function(col,w,tw){},onAllColumnWidthsUpdated:function(ws,tw){},onColumnHiddenUpdated:function(col,hidden,tw){},updateColumnText:function(col,text){},afterMove:function(colIndex){},init:function(grid){this.grid=grid;this.initTemplates();this.initData(grid.store,grid.colModel);this.initUI(grid);},getColumnId:function(index){return this.cm.getColumnId(index);},renderHeaders:function(){var cm=this.cm,ts=this.templates;var ct=ts.hcell;var cb=[],sb=[],p={};for(var i=0,len=cm.getColumnCount();i<len;i++){p.id=cm.getColumnId(i);p.value=cm.getColumnHeader(i)||"";p.style=this.getColumnStyle(i,true);p.tooltip=this.getColumnTooltip(i);if(cm.config[i].align=='right'){p.istyle='padding-right:16px';}else{delete p.istyle;}
+this.onLayout(vw,vh);},onLayout:function(vw,vh){},onColumnWidthUpdated:function(col,w,tw){},onAllColumnWidthsUpdated:function(ws,tw){},onColumnHiddenUpdated:function(col,hidden,tw){},updateColumnText:function(col,text){},afterMove:function(colIndex){},init:function(grid){this.grid=grid;this.initTemplates();this.initData(grid.store,grid.colModel);this.initUI(grid);},getColumnId:function(index){return this.cm.getColumnId(index);},renderHeaders:function(){var cm=this.cm,ts=this.templates;var ct=ts.hcell;var cb=[],p={};for(var i=0,len=cm.getColumnCount();i<len;i++){p.id=cm.getColumnId(i);p.value=cm.getColumnHeader(i)||"";p.style=this.getColumnStyle(i,true);p.tooltip=this.getColumnTooltip(i);if(cm.config[i].align=='right'){p.istyle='padding-right:16px';}else{delete p.istyle;}
cb[cb.length]=ct.apply(p);}
return ts.header.apply({cells:cb.join(""),tstyle:'width:'+this.getTotalWidth()+';'});},getColumnTooltip:function(i){var tt=this.cm.getColumnTooltip(i);if(tt){if(Ext.QuickTips.isEnabled()){return'ext:qtip="'+tt+'"';}else{return'title="'+tt+'"';}}
return"";},beforeUpdate:function(){this.grid.stopEditing(true);},updateHeaders:function(){this.innerHd.firstChild.innerHTML=this.renderHeaders();},focusRow:function(row){this.focusCell(row,0,false);},focusCell:function(row,col,hscroll){this.syncFocusEl(this.ensureVisible(row,col,hscroll));if(Ext.isGecko){this.focusEl.focus();}else{this.focusEl.focus.defer(1,this.focusEl);}},resolveCell:function(row,col,hscroll){if(typeof row!="number"){row=row.rowIndex;}
@@ -66,7 +67,7 @@
this.syncFocusEl(firstRow);},deleteRows:function(dm,firstRow,lastRow){if(dm.getRowCount()<1){this.refresh();}else{this.fireEvent("beforerowsdeleted",this,firstRow,lastRow);this.removeRows(firstRow,lastRow);this.processRows(firstRow);this.fireEvent("rowsdeleted",this,firstRow,lastRow);}},getColumnStyle:function(col,isHeader){var style=!isHeader?(this.cm.config[col].css||''):'';style+='width:'+this.getColumnWidth(col)+';';if(this.cm.isHidden(col)){style+='display:none;';}
var align=this.cm.config[col].align;if(align){style+='text-align:'+align+';';}
return style;},getColumnWidth:function(col){var w=this.cm.getColumnWidth(col);if(typeof w=='number'){return(Ext.isBorderBox?w:(w-this.borderWidth>0?w-this.borderWidth:0))+'px';}
-return w;},getTotalWidth:function(){return this.cm.getTotalWidth()+'px';},fitColumns:function(preventRefresh,onlyExpand,omitColumn){var cm=this.cm,leftOver,dist,i;var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(aw<20){return;}
+return w;},getTotalWidth:function(){return this.cm.getTotalWidth()+'px';},fitColumns:function(preventRefresh,onlyExpand,omitColumn){var cm=this.cm,i;var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(aw<20){return;}
var extra=aw-tw;if(extra===0){return false;}
var vc=cm.getColumnCount(true);var ac=vc-(typeof omitColumn=='number'?1:0);if(ac===0){ac=1;omitColumn=undefined;}
var colCount=cm.getColumnCount();var cols=[];var extraCol=0;var width=0;var w;for(i=0;i<colCount;i++){if(!cm.isHidden(i)&&!cm.isFixed(i)&&i!==omitColumn){w=cm.getColumnWidth(i);cols.push(i);extraCol=i;cols.push(w);width+=w;}}
@@ -76,7 +77,7 @@
return true;},autoExpand:function(preventUpdate){var g=this.grid,cm=this.cm;if(!this.userResized&&g.autoExpandColumn){var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(tw!=aw){var ci=cm.getIndexById(g.autoExpandColumn);var currentWidth=cm.getColumnWidth(ci);var cw=Math.min(Math.max(((aw-tw)+currentWidth),g.autoExpandMin),g.autoExpandMax);if(cw!=currentWidth){cm.setColumnWidth(ci,cw,true);if(preventUpdate!==true){this.updateColumnWidth(ci,cw);}}}}},getColumnData:function(){var cs=[],cm=this.cm,colCount=cm.getColumnCount();for(var i=0;i<colCount;i++){var name=cm.getDataIndex(i);cs[i]={name:(typeof name=='undefined'?this.ds.fields.get(i).name:name),renderer:cm.getRenderer(i),id:cm.getColumnId(i),style:this.getColumnStyle(i)};}
return cs;},renderRows:function(startRow,endRow){var g=this.grid,cm=g.colModel,ds=g.store,stripe=g.stripeRows;var colCount=cm.getColumnCount();if(ds.getCount()<1){return"";}
var cs=this.getColumnData();startRow=startRow||0;endRow=typeof endRow=="undefined"?ds.getCount()-1:endRow;var rs=ds.getRange(startRow,endRow);return this.doRender(cs,rs,ds,startRow,colCount,stripe);},renderBody:function(){var markup=this.renderRows();return this.templates.body.apply({rows:markup});},refreshRow:function(record){var ds=this.ds,index;if(typeof record=='number'){index=record;record=ds.getAt(index);}else{index=ds.indexOf(record);}
-var cls=[];this.insertRows(ds,index,index,true);this.getRow(index).rowIndex=index;this.onRemove(ds,record,index+1,true);this.fireEvent("rowupdated",this,index,record);},refresh:function(headersToo){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var result=this.renderBody();this.mainBody.update(result);if(headersToo===true){this.updateHeaders();this.updateHeaderSortState();}
+this.insertRows(ds,index,index,true);this.getRow(index).rowIndex=index;this.onRemove(ds,record,index+1,true);this.fireEvent("rowupdated",this,index,record);},refresh:function(headersToo){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var result=this.renderBody();this.mainBody.update(result);if(headersToo===true){this.updateHeaders();this.updateHeaderSortState();}
this.processRows(0,true);this.layout();this.applyEmptyText();this.fireEvent("refresh",this);},applyEmptyText:function(){if(this.emptyText&&!this.hasRows()){this.mainBody.update('<div class="x-grid-empty">'+this.emptyText+'</div>');}},updateHeaderSortState:function(){var state=this.ds.getSortState();if(!state){return;}
if(!this.sortState||(this.sortState.field!=state.field||this.sortState.direction!=state.direction)){this.grid.fireEvent('sortchange',this.grid,state);}
this.sortState=state;var sortColumn=this.cm.findColumnIndex(state.field);if(sortColumn!=-1){var sortDir=state.direction;this.updateSortIcon(sortColumn,sortDir);}},destroy:function(){if(this.colMenu){Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.destroy();delete this.colMenu;}
@@ -91,11 +92,11 @@
this.ds=ds;if(this.cm){this.cm.un("configchange",this.onColConfigChange,this);this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this);this.cm.un("columnlockchange",this.onColumnLock,this);}
if(cm){delete this.lastViewWidth;cm.on("configchange",this.onColConfigChange,this);cm.on("widthchange",this.onColWidthChange,this);cm.on("headerchange",this.onHeaderChange,this);cm.on("hiddenchange",this.onHiddenChange,this);cm.on("columnmoved",this.onColumnMove,this);cm.on("columnlockchange",this.onColumnLock,this);}
this.cm=cm;},onDataChange:function(){this.refresh();this.updateHeaderSortState();this.syncFocusEl(0);},onClear:function(){this.refresh();this.syncFocusEl(0);},onUpdate:function(ds,record){this.refreshRow(record);},onAdd:function(ds,records,index){this.insertRows(ds,index,index+(records.length-1));},onRemove:function(ds,record,index,isUpdate){if(isUpdate!==true){this.fireEvent("beforerowremoved",this,index,record);}
-this.removeRow(index);if(isUpdate!==true){this.processRows(index);this.applyEmptyText();this.fireEvent("rowremoved",this,index,record);}},onLoad:function(){this.scrollToTop();},onColWidthChange:function(cm,col,width){this.updateColumnWidth(col,width);},onHeaderChange:function(cm,col,text){this.updateHeaders();},onHiddenChange:function(cm,col,hidden){this.updateColumnHidden(col,hidden);},onColumnMove:function(cm,oldIndex,newIndex){this.indexMap=null;var s=this.getScrollState();this.refresh(true);this.restoreScroll(s);this.afterMove(newIndex);},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true);},initUI:function(grid){grid.on("headerclick",this.onHeaderClick,this);if(grid.trackMouseOver){grid.on("mouseover",this.onRowOver,this);grid.on("mouseout",this.onRowOut,this);}},initEvents:function(){},onHeaderClick:function(g,index){if(this.headersDisabled||!this.cm.isSortable(index)){return;}
-g.stopEditing(true);g.store.sort(this.cm.getDataIndex(index));},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.addRowClass(row,"x-grid3-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&row!==this.findRowIndex(e.getRelatedTarget())){this.removeRowClass(row,"x-grid3-row-over");}},handleWheel:function(e){e.stopPropagation();},onRowSelect:function(row){this.addRowClass(row,this.selectedRowClass);},onRowDeselect:function(row){this.removeRowClass(row,this.selectedRowClass);},onCellSelect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).addClass("x-grid3-cell-selected");}},onCellDeselect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).removeClass("x-grid3-cell-selected");}},onColumnSplitterMoved:function(i,w){this.userResized=true;var cm=this.grid.colModel;cm.setColumnWidth(i,w,true);if(this.forceFit){this.fitColumns(true,false,i);this.updateAllColumnWidths();}else{this.updateColumnWidth(i,w);this.syncHeaderScroll();}
+this.removeRow(index);if(isUpdate!==true){this.processRows(index);this.applyEmptyText();this.fireEvent("rowremoved",this,index,record);}},onLoad:function(){this.scrollToTop();},onColWidthChange:function(cm,col,width){this.updateColumnWidth(col,width);},onHeaderChange:function(cm,col,text){this.updateHeaders();},onHiddenChange:function(cm,col,hidden){this.updateColumnHidden(col,hidden);},onColumnMove:function(cm,oldIndex,newIndex){this.indexMap=null;var s=this.getScrollState();this.refresh(true);this.restoreScroll(s);this.afterMove(newIndex);},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true);},initUI:function(grid){grid.on("headerclick",this.onHeaderClick,this);},initEvents:function(){},onHeaderClick:function(g,index){if(this.headersDisabled||!this.cm.isSortable(index)){return;}
+g.stopEditing(true);g.store.sort(this.cm.getDataIndex(index));},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.addRowClass(row,"x-grid3-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&!e.within(this.getRow(row),true)){this.removeRowClass(row,"x-grid3-row-over");}},handleWheel:function(e){e.stopPropagation();},onRowSelect:function(row){this.addRowClass(row,this.selectedRowClass);},onRowDeselect:function(row){this.removeRowClass(row,this.selectedRowClass);},onCellSelect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).addClass("x-grid3-cell-selected");}},onCellDeselect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).removeClass("x-grid3-cell-selected");}},onColumnSplitterMoved:function(i,w){this.userResized=true;var cm=this.grid.colModel;cm.setColumnWidth(i,w,true);if(this.forceFit){this.fitColumns(true,false,i);this.updateAllColumnWidths();}else{this.updateColumnWidth(i,w);this.syncHeaderScroll();}
this.grid.fireEvent("columnresize",i,w);},handleHdMenuClick:function(item){var index=this.hdCtxIndex;var cm=this.cm,ds=this.ds;switch(item.id){case"asc":ds.sort(cm.getDataIndex(index),"ASC");break;case"desc":ds.sort(cm.getDataIndex(index),"DESC");break;default:index=cm.getIndexById(item.id.substr(4));if(index!=-1){if(item.checked&&cm.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false;}
cm.setHidden(index,item.checked);}}
-return true;},isHideableColumn:function(c){return!c.hidden&&!c.fixed;},beforeColMenuShow:function(){var cm=this.cm,colCount=cm.getColumnCount();this.colMenu.removeAll();for(var i=0;i<colCount;i++){if(cm.config[i].fixed!==true&&cm.config[i].hideable!==false){this.colMenu.add(new Ext.menu.CheckItem({id:"col-"+cm.getColumnId(i),text:cm.getColumnHeader(i),checked:!cm.isHidden(i),hideOnClick:false,disabled:cm.config[i].hideable===false}));}}},handleHdDown:function(e,t){if(Ext.fly(t).hasClass('x-grid3-hd-btn')){e.stopEvent();var hd=this.findHeaderCell(t);Ext.fly(hd).addClass('x-grid3-hd-menu-open');var index=this.getCellIndex(hd);this.hdCtxIndex=index;var ms=this.hmenu.items,cm=this.cm;ms.get("asc").setDisabled(!cm.isSortable(index));ms.get("desc").setDisabled(!cm.isSortable(index));this.hmenu.on("hide",function(){Ext.fly(hd).removeClass('x-grid3-hd-menu-open');},this,{single:true});this.hmenu.show(t,"tl-bl?");}},handleHdOver:function(e,t){var hd=this.findHeaderCell(t);if(hd&&!this.headersDisabled){this.activeHd=hd;this.activeHdIndex=this.getCellIndex(hd);var fly=this.fly(hd);this.activeHdRegion=fly.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){fly.addClass("x-grid3-hd-over");this.activeHdBtn=fly.child('.x-grid3-hd-btn');if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(hd.firstChild.offsetHeight-1)+'px';}}}},handleHdMove:function(e,t){if(this.activeHd&&!this.headersDisabled){var hw=this.splitHandleWidth||5;var r=this.activeHdRegion;var x=e.getPageX();var ss=this.activeHd.style;if(x-r.left<=hw&&this.cm.isResizable(this.activeHdIndex-1)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'e-resize':'col-resize';}else if(r.right-x<=(!this.activeHdBtn?hw:2)&&this.cm.isResizable(this.activeHdIndex)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'w-resize':'col-resize';}else{ss.cursor='';}}},handleHdOut:function(e,t){var hd=this.findHeaderCell(t);if(hd&&(!Ext.isIE||!e.within(hd,true))){this.activeHd=null;this.fly(hd).removeClass("x-grid3-hd-over");hd.style.cursor='';}},hasRows:function(){var fc=this.mainBody.dom.firstChild;return fc&&fc.className!='x-grid-empty';},bind:function(d,c){this.initData(d,c);}});Ext.grid.GridView.SplitDragZone=function(grid,hd){this.grid=grid;this.view=grid.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5;};Ext.extend(Ext.grid.GridView.SplitDragZone,Ext.dd.DDProxy,{b4StartDrag:function(x,y){this.view.headersDisabled=true;var h=this.view.mainWrap.getHeight();this.marker.setHeight(h);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),'tl-tl',[-2,0]);this.proxy.setHeight(h);var w=this.cm.getColumnWidth(this.cellIndex);var minw=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(minw,1000);this.setYConstraint(0,0);this.minX=x-minw;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){var t=this.view.findHeaderCell(e.getTarget());if(t){var xy=this.view.fly(t).getXY(),x=xy[0],y=xy[1];var exy=e.getXY(),ex=exy[0],ey=exy[1];var w=t.offsetWidth,adjust=false;if((ex-x)<=this.hw){adjust=-1;}else if((x+w)-ex<=this.hw){adjust=0;}
+return true;},isHideableColumn:function(c){return!c.hidden&&!c.fixed;},beforeColMenuShow:function(){var cm=this.cm,colCount=cm.getColumnCount();this.colMenu.removeAll();for(var i=0;i<colCount;i++){if(cm.config[i].fixed!==true&&cm.config[i].hideable!==false){this.colMenu.add(new Ext.menu.CheckItem({id:"col-"+cm.getColumnId(i),text:cm.getColumnHeader(i),checked:!cm.isHidden(i),hideOnClick:false,disabled:cm.config[i].hideable===false}));}}},handleHdDown:function(e,t){if(Ext.fly(t).hasClass('x-grid3-hd-btn')){e.stopEvent();var hd=this.findHeaderCell(t);Ext.fly(hd).addClass('x-grid3-hd-menu-open');var index=this.getCellIndex(hd);this.hdCtxIndex=index;var ms=this.hmenu.items,cm=this.cm;ms.get("asc").setDisabled(!cm.isSortable(index));ms.get("desc").setDisabled(!cm.isSortable(index));this.hmenu.on("hide",function(){Ext.fly(hd).removeClass('x-grid3-hd-menu-open');},this,{single:true});this.hmenu.show(t,"tl-bl?");}},handleHdOver:function(e,t){var hd=this.findHeaderCell(t);if(hd&&!this.headersDisabled){this.activeHd=hd;this.activeHdIndex=this.getCellIndex(hd);var fly=this.fly(hd);this.activeHdRegion=fly.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){fly.addClass("x-grid3-hd-over");this.activeHdBtn=fly.child('.x-grid3-hd-btn');if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(hd.firstChild.offsetHeight-1)+'px';}}}},handleHdMove:function(e,t){if(this.activeHd&&!this.headersDisabled){var hw=this.splitHandleWidth||5;var r=this.activeHdRegion;var x=e.getPageX();var ss=this.activeHd.style;if(x-r.left<=hw&&this.cm.isResizable(this.activeHdIndex-1)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'e-resize':'col-resize';}else if(r.right-x<=(!this.activeHdBtn?hw:2)&&this.cm.isResizable(this.activeHdIndex)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'w-resize':'col-resize';}else{ss.cursor='';}}},handleHdOut:function(e,t){var hd=this.findHeaderCell(t);if(hd&&(!Ext.isIE||!e.within(hd,true))){this.activeHd=null;this.fly(hd).removeClass("x-grid3-hd-over");hd.style.cursor='';}},hasRows:function(){var fc=this.mainBody.dom.firstChild;return fc&&fc.className!='x-grid-empty';},bind:function(d,c){this.initData(d,c);}});Ext.grid.GridView.SplitDragZone=function(grid,hd){this.grid=grid;this.view=grid.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5;};Ext.extend(Ext.grid.GridView.SplitDragZone,Ext.dd.DDProxy,{b4StartDrag:function(x,y){this.view.headersDisabled=true;var h=this.view.mainWrap.getHeight();this.marker.setHeight(h);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),'tl-tl',[-2,0]);this.proxy.setHeight(h);var w=this.cm.getColumnWidth(this.cellIndex);var minw=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(minw,1000);this.setYConstraint(0,0);this.minX=x-minw;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){var t=this.view.findHeaderCell(e.getTarget());if(t){var xy=this.view.fly(t).getXY(),x=xy[0],y=xy[1];var exy=e.getXY(),ex=exy[0];var w=t.offsetWidth,adjust=false;if((ex-x)<=this.hw){adjust=-1;}else if((x+w)-ex<=this.hw){adjust=0;}
if(adjust!==false){this.cm=this.grid.colModel;var ci=this.view.getCellIndex(t);if(adjust==-1){if(ci+adjust<0){return;}
while(this.cm.isHidden(ci+adjust)){--adjust;if(ci+adjust<0){return;}}}
this.cellIndex=ci+adjust;this.split=t.dom;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this,arguments);}}else if(this.view.columnDrag){this.view.columnDrag.callHandleMouseDown(e);}}},endDrag:function(e){this.marker.hide();var v=this.view;var endX=Math.max(this.minX,e.getPageX());var diff=endX-this.startPos;v.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+diff);setTimeout(function(){v.headersDisabled=false;},50);},autoOffset:function(){this.setDelta(0,0);}});
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/layout/BorderLayout-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/layout/BorderLayout-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/layout/BorderLayout-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -23,18 +23,18 @@
if(Ext.isIE&&Ext.isStrict){target.repaint();}},destroy:function(){var r=['north','south','east','west'];for(var i=0;i<r.length;i++){var region=this[r[i]];if(region){if(region.destroy){region.destroy();}else if(region.split){region.split.destroy(true);}}}
Ext.layout.BorderLayout.superclass.destroy.call(this);}});Ext.layout.BorderLayout.Region=function(layout,config,pos){Ext.apply(this,config);this.layout=layout;this.position=pos;this.state={};if(typeof this.margins=='string'){this.margins=this.layout.parseMargins(this.margins);}
this.margins=Ext.applyIf(this.margins||{},this.defaultMargins);if(this.collapsible){if(typeof this.cmargins=='string'){this.cmargins=this.layout.parseMargins(this.cmargins);}
-if(this.collapseMode=='mini'&&!this.cmargins){this.cmargins={left:0,top:0,right:0,bottom:0};}else{this.cmargins=Ext.applyIf(this.cmargins||{},pos=='north'||pos=='south'?this.defaultNSCMargins:this.defaultEWCMargins);}}};Ext.layout.BorderLayout.Region.prototype={collapsible:false,split:false,floatable:true,minWidth:50,minHeight:50,defaultMargins:{left:0,top:0,right:0,bottom:0},defaultNSCMargins:{left:5,top:5,right:5,bottom:5},defaultEWCMargins:{left:5,top:0,right:5,bottom:0},isCollapsed:false,render:function(ct,p){this.panel=p;p.el.enableDisplayMode();this.targetEl=ct;this.el=p.el;var gs=p.getState,ps=this.position;p.getState=function(){return Ext.apply(gs.call(p)||{},this.state);}.createDelegate(this);if(ps!='center'){p.allowQueuedExpand=false;p.on({beforecollapse:this.beforeCollapse,collapse:this.onCollapse,beforeexpand:this.beforeExpand,expand:this.onExpand,hide:this.onHide,show:this.onShow,scope:this});if(this.collapsible){p.collapseEl='el';p.slideAnchor=this.getSlideAnchor();}
+if(this.collapseMode=='mini'&&!this.cmargins){this.cmargins={left:0,top:0,right:0,bottom:0};}else{this.cmargins=Ext.applyIf(this.cmargins||{},pos=='north'||pos=='south'?this.defaultNSCMargins:this.defaultEWCMargins);}}};Ext.layout.BorderLayout.Region.prototype={collapsible:false,split:false,floatable:true,minWidth:50,minHeight:50,defaultMargins:{left:0,top:0,right:0,bottom:0},defaultNSCMargins:{left:5,top:5,right:5,bottom:5},defaultEWCMargins:{left:5,top:0,right:5,bottom:0},floatingZIndex:100,isCollapsed:false,render:function(ct,p){this.panel=p;p.el.enableDisplayMode();this.targetEl=ct;this.el=p.el;var gs=p.getState,ps=this.position;p.getState=function(){return Ext.apply(gs.call(p)||{},this.state);}.createDelegate(this);if(ps!='center'){p.allowQueuedExpand=false;p.on({beforecollapse:this.beforeCollapse,collapse:this.onCollapse,beforeexpand:this.beforeExpand,expand:this.onExpand,hide:this.onHide,show:this.onShow,scope:this});if(this.collapsible){p.collapseEl='el';p.slideAnchor=this.getSlideAnchor();}
if(p.tools&&p.tools.toggle){p.tools.toggle.addClass('x-tool-collapse-'+ps);p.tools.toggle.addClassOnOver('x-tool-collapse-'+ps+'-over');}}},getCollapsedEl:function(){if(!this.collapsedEl){if(!this.toolTemplate){var tt=new Ext.Template('<div class="x-tool x-tool-{id}"> </div>');tt.disableFormats=true;tt.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=tt;}
this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+'-xcollapsed'});this.collapsedEl.enableDisplayMode('block');if(this.collapseMode=='mini'){this.collapsedEl.addClass('x-layout-cmini-'+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:" "});this.miniCollapsedEl.addClassOnOver('x-layout-mini-over');this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on('click',this.onExpandClick,this,{stopEvent:true});}else{var t=this.toolTemplate.append(this.collapsedEl.dom,{id:'expand-'+this.position},true);t.addClassOnOver('x-tool-expand-'+this.position+'-over');t.on('click',this.onExpandClick,this,{stopEvent:true});if(this.floatable!==false){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.collapseClick,this);}}}
return this.collapsedEl;},onExpandClick:function(e){if(this.isSlid){this.afterSlideIn();this.panel.expand(false);}else{this.panel.expand();}},onCollapseClick:function(e){this.panel.collapse();},beforeCollapse:function(p,animate){this.lastAnim=animate;if(this.splitEl){this.splitEl.hide();}
this.getCollapsedEl().show();this.panel.el.setStyle('z-index',100);this.isCollapsed=true;this.layout.layout();},onCollapse:function(animate){this.panel.el.setStyle('z-index',1);if(this.lastAnim===false||this.panel.animCollapse===false){this.getCollapsedEl().dom.style.visibility='visible';}else{this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:.2});}
this.state.collapsed=true;this.panel.saveState();},beforeExpand:function(animate){var c=this.getCollapsedEl();this.el.show();if(this.position=='east'||this.position=='west'){this.panel.setSize(undefined,c.getHeight());}else{this.panel.setSize(c.getWidth(),undefined);}
-c.hide();c.dom.style.visibility='hidden';this.panel.el.setStyle('z-index',100);},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show();}
+c.hide();c.dom.style.visibility='hidden';this.panel.el.setStyle('z-index',this.floatingZIndex);},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show();}
this.layout.layout();this.panel.el.setStyle('z-index',1);this.state.collapsed=false;this.panel.saveState();},collapseClick:function(e){if(this.isSlid){e.stopPropagation();this.slideIn();}else{e.stopPropagation();this.slideOut();}},onHide:function(){if(this.isCollapsed){this.getCollapsedEl().hide();}else if(this.splitEl){this.splitEl.hide();}},onShow:function(){if(this.isCollapsed){this.getCollapsedEl().show();}else if(this.splitEl){this.splitEl.show();}},isVisible:function(){return!this.panel.hidden;},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins;},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize();},setPanel:function(panel){this.panel=panel;},getMinWidth:function(){return this.minWidth;},getMinHeight:function(){return this.minHeight;},applyLayoutCollapsed:function(box){var ce=this.getCollapsedEl();ce.setLeftTop(box.x,box.y);ce.setSize(box.width,box.height);},applyLayout:function(box){if(this.isCollapsed){this.applyLayoutCollapsed(box);}else{this.panel.setPosition(box.x,box.y);this.panel.setSize(box.width,box.height);}},beforeSlide:function(){this.panel.beforeEffect();},afterSlide:function(){this.panel.afterEffect();},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){var st=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={"mouseout":function(e){if(!e.within(this.el,true)){st.delay(500);}},"mouseover":function(e){st.cancel();},scope:this};}
this.el.on(this.autoHideHd);}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover);}},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this);},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return;}
this.isSlid=true;var ts=this.panel.tools;if(ts&&ts.toggle){ts.toggle.hide();}
this.el.show();if(this.position=='east'||this.position=='west'){this.panel.setSize(undefined,this.collapsedEl.getHeight());}else{this.panel.setSize(this.collapsedEl.getWidth(),undefined);}
-this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",102);if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);},scope:this,block:true});}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var ts=this.panel.tools;if(ts&&ts.toggle){ts.toggle.show();}},slideIn:function(cb){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(cb);return;}
+this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",this.floatingZIndex+2);if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);},scope:this,block:true});}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var ts=this.panel.tools;if(ts&&ts.toggle){ts.toggle.show();}},slideIn:function(cb){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(cb);return;}
this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide();this.afterSlide();this.afterSlideIn();Ext.callback(cb);},scope:this,block:true});}else{this.el.hide();this.afterSlideIn();}},slideInIf:function(e){if(!e.within(this.el)){this.slideIn();}},anchors:{"west":"left","east":"right","north":"top","south":"bottom"},sanchors:{"west":"l","east":"r","north":"t","south":"b"},canchors:{"west":"tl-tr","east":"tr-tl","north":"tl-bl","south":"bl-tl"},getAnchor:function(){return this.anchors[this.position];},getCollapseAnchor:function(){return this.canchors[this.position];},getSlideAnchor:function(){return this.sanchors[this.position];},getAlignAdj:function(){var cm=this.cmargins;switch(this.position){case"west":return[0,0];break;case"east":return[0,0];break;case"north":return[0,0];break;case"south":return[0,0];break;}},getExpandAdj:function(){var c=this.collapsedEl,cm=this.cmargins;switch(this.position){case"west":return[-(cm.right+c.getWidth()+cm.left),0];break;case"east":return[cm.right+c.getWidth()+cm.left,0];break;case"north":return[0,-(cm.top+cm.bottom+c.getHeight())];break;case"south":return[0,cm.top+cm.bottom+c.getHeight()];break;}}};Ext.layout.BorderLayout.SplitRegion=function(layout,config,pos){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,layout,config,pos);this.applyLayout=this.applyFns[pos];};Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:'getVMaxSize',minProp:'minHeight',maxProp:'maxHeight'},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:'getVMaxSize',minProp:'minHeight',maxProp:'maxHeight'},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:'getHMaxSize',minProp:'minWidth',maxProp:'maxWidth'},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:'getHMaxSize',minProp:'minWidth',maxProp:'maxWidth'}},applyFns:{west:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
var sd=this.splitEl.dom,s=sd.style;this.panel.setPosition(box.x,box.y);var sw=sd.offsetWidth;s.left=(box.x+box.width-sw)+'px';s.top=(box.y)+'px';s.height=Math.max(0,box.height)+'px';this.panel.setSize(box.width-sw,box.height);},east:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
var sd=this.splitEl.dom,s=sd.style;var sw=sd.offsetWidth;this.panel.setPosition(box.x+sw,box.y);s.left=(box.x)+'px';s.top=(box.y)+'px';s.height=Math.max(0,box.height)+'px';this.panel.setSize(box.width-sw,box.height);},north:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/layout/FormLayout-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/layout/FormLayout-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/layout/FormLayout-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -12,4 +12,4 @@
if(ct.labelAlign=='top'){this.labelStyle="width:auto;";this.labelAdjust=0;this.elementStyle="padding-left:0;";}}
if(!this.fieldTpl){var t=new Ext.Template('<div class="x-form-item {5}" tabIndex="-1">','<label for="{0}" style="{2}" class="x-form-item-label">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div><div class="{6}"></div>','</div>');t.disableFormats=true;t.compile();Ext.layout.FormLayout.prototype.fieldTpl=t;}},renderItem:function(c,position,target){if(c&&!c.rendered&&(c.isFormField||c.fieldLabel)&&c.inputType!='hidden'){var args=[c.id,c.fieldLabel,c.labelStyle||this.labelStyle||'',this.elementStyle||'',typeof c.labelSeparator=='undefined'?this.labelSeparator:c.labelSeparator,(c.itemCls||this.container.itemCls||'')+(c.hideLabel?' x-hide-label':''),c.clearCls||'x-form-clear-left'];if(typeof position=='number'){position=target.dom.childNodes[position]||null;}
if(position){this.fieldTpl.insertBefore(position,args);}else{this.fieldTpl.append(target,args);}
-c.render('x-form-el-'+c.id);}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments);}},adjustWidthAnchor:function(value,comp){return value-(comp.isFormField?(comp.hideLabel?0:this.labelAdjust):0);},isValidParent:function(c,target){return true;}});Ext.Container.LAYOUTS['form']=Ext.layout.FormLayout;
\ No newline at end of file
+c.render('x-form-el-'+c.id);}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments);}},adjustWidthAnchor:function(value,comp){return value-(comp.isFormField||comp.fieldLabel?(comp.hideLabel?0:this.labelAdjust):0);},isValidParent:function(c,target){return true;}});Ext.Container.LAYOUTS['form']=Ext.layout.FormLayout;
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/menu/BaseItem-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/menu/BaseItem-min.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/menu/BaseItem-min.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -7,6 +7,6 @@
*/
-Ext.menu.BaseItem=function(config){Ext.menu.BaseItem.superclass.constructor.call(this,config);this.addEvents('click','activate','deactivate');if(this.handler){this.on("click",this.handler,this.scope);}};Ext.extend(Ext.menu.BaseItem,Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,hideDelay:100,ctype:"Ext.menu.BaseItem",actionMode:"container",render:function(container,parentMenu){this.parentMenu=parentMenu;Ext.menu.BaseItem.superclass.render.call(this,container);this.container.menuItemId=this.itemId||this.id;},onRender:function(container,position){this.el=Ext.get(this.el);container.dom.appendChild(this.el.dom);},setHandler:function(handler,scope){if(this.handler){this.un("click",this.handler,this.scope);}
+Ext.menu.BaseItem=function(config){Ext.menu.BaseItem.superclass.constructor.call(this,config);this.addEvents('click','activate','deactivate');if(this.handler){this.on("click",this.handler,this.scope);}};Ext.extend(Ext.menu.BaseItem,Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,clickHideDelay:1,ctype:"Ext.menu.BaseItem",actionMode:"container",render:function(container,parentMenu){this.parentMenu=parentMenu;Ext.menu.BaseItem.superclass.render.call(this,container);this.container.menuItemId=this.itemId||this.id;},onRender:function(container,position){this.el=Ext.get(this.el);container.dom.appendChild(this.el.dom);},setHandler:function(handler,scope){if(this.handler){this.un("click",this.handler,this.scope);}
this.on("click",this.handler=handler,this.scope=scope);},onClick:function(e){if(!this.disabled&&this.fireEvent("click",this,e)!==false&&this.parentMenu.fireEvent("itemclick",this,e)!==false){this.handleClick(e);}else{e.stopEvent();}},activate:function(){if(this.disabled){return false;}
-var li=this.container;li.addClass(this.activeClass);this.region=li.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true;},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this);},shouldDeactivate:function(e){return!this.region||!this.region.contains(e.getPoint());},handleClick:function(e){if(this.hideOnClick){this.parentMenu.hide.defer(this.hideDelay,this.parentMenu,[true]);}},expandMenu:function(autoActivate){},hideMenu:function(){}});
\ No newline at end of file
+var li=this.container;li.addClass(this.activeClass);this.region=li.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true;},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this);},shouldDeactivate:function(e){return!this.region||!this.region.contains(e.getPoint());},handleClick:function(e){if(this.hideOnClick){this.parentMenu.hide.defer(this.clickHideDelay,this.parentMenu,[true]);}},expandMenu:function(autoActivate){},hideMenu:function(){}});
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -19,7 +19,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css"/>
</head>
<body id="docbody">
-<script type="text/javascript" src="../examples.js"></script>
+<script type="text/javascript" src="../shared/examples.js"></script>
<!-- EXAMPLES -->
<h1>Ext Buttons</h1>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/chart/charts.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/chart/charts.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/chart/charts.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -59,7 +59,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Charts</h1>
<p>The js is not minified so it is readable. See <a href="charts.js">charts.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/core/spotlight.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/core/spotlight.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/core/spotlight.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -24,7 +24,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Spotlight</h1>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/core/templates.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/core/templates.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/core/templates.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -28,7 +28,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Templates</h1>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/debug/debug-console.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/debug/debug-console.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/debug/debug-console.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -17,7 +17,7 @@
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Ext Debug Console</h1>
<div style="width:700px">
<p>Included in ext-all-debug.js is the Ext Debug Console. It offers a limited amount of <a href="http://getfirebug.com">FireBug</a>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/desktop/desktop.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/desktop/desktop.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/desktop/desktop.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -9,7 +9,7 @@
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<!-- ENDLIBS -->
- <script type="text/javascript" src="../../ext-all-detail.js"></script>
+ <script type="text/javascript" src="../../ext-all-debug.js"></script>
<!-- DESKTOP -->
<script type="text/javascript" src="js/StartMenu.js"></script>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/absform.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/absform.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/absform.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -17,7 +17,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css"/>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script>
+<script type="text/javascript" src="../shared/examples.js"></script>
<!-- EXAMPLES -->
<h1>Absolute Layout with Forms</h1>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/anchoring.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/anchoring.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/anchoring.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -17,7 +17,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css"/>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script>
+<script type="text/javascript" src="../shared/examples.js"></script>
<!-- EXAMPLES -->
<h1>Anchor Layout with Forms</h1>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/combos.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/combos.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/combos.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -3,8 +3,8 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Combo Boxes</title>
- <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
- <link rel="stylesheet" type="text/css" href="../../resources/css/xtheme-gray.css" />
+ <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
+ <link rel="stylesheet" type="text/css" href="../../resources/css/xtheme-gray.css" />
<!-- GC -->
<!-- LIBS -->
@@ -24,7 +24,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Combo Boxes</h1>
<p>The js is not minified so it is readable. See <a href="combos.js">combos.js</a>.</p>
@@ -32,55 +32,55 @@
<b>Data Sources</b><br />
The combo box can use any type of Ext.data.Store as its data source.
This means your data can be XML, JSON, arrays or any other supported format. It can be loaded using
- Ajax, via script tags or locally. This combo uses local data from a JS array:</p>
-<div>
- <input type="text" id="local-states" size="20"/>
-</div>
-<div id="state-combo-code-panel" style="margin-top:10px">
-<pre id="state-combo-code" class="code"><code>// simple array store
-var store = new Ext.data.SimpleStore({
- fields: ['abbr', 'state'],
- data : exampleData
-});
-var combo = new Ext.form.ComboBox({
- store: store,
- displayField:'state',
- typeAhead: true,
- mode: 'local',
- triggerAction: 'all',
- emptyText:'Select a state...',
- selectOnFocus:true,
- applyTo: 'local-states'
-});
-</code></pre></div>
-<br />
+ Ajax, via script tags or locally. This combo uses local data from a JS array:</p>
+<div>
+ <input type="text" id="local-states" size="20"/>
+</div>
+<div id="state-combo-code-panel" style="margin-top:10px">
+<pre id="state-combo-code" class="code"><code>// simple array store
+var store = new Ext.data.SimpleStore({
+ fields: ['abbr', 'state'],
+ data : exampleData
+});
+var combo = new Ext.form.ComboBox({
+ store: store,
+ displayField:'state',
+ typeAhead: true,
+ mode: 'local',
+ triggerAction: 'all',
+ emptyText:'Select a state...',
+ selectOnFocus:true,
+ applyTo: 'local-states'
+});
+</code></pre></div>
+<br />
-<p>
- The combo below uses the same data, but also illustrates how to use an optional
- custom template to create custom UI renditions for list items. In this case,
- each item has a popup QuickTip which displays the state's nickname when hovered over.
-</p>
-<div>
- <input type="text" id="local-states-with-qtip" size="20"/>
-</div>
-<div id="state-combo-qtip-code-panel" style="margin-top:10px">
-<pre id="state-combo-qtip-code" class="code"><code>// simple array store
-var store = new Ext.data.SimpleStore({
- fields: ['abbr', 'state', 'nick'],
- data : exampleData
-});
-var comboWithTooltip = new Ext.form.ComboBox({
- tpl: '<tpl for="."><div ext:qtip="{state}. {nick}" class="x-combo-list-item">{state}</div></tpl>',
- store: store,
- displayField:'state',
- typeAhead: true,
- mode: 'local',
- triggerAction: 'all',
- emptyText:'Select a state...',
- selectOnFocus:true,
- applyTo: 'local-states-with-qtip'
-});
-</code></pre></div>
+<p>
+ The combo below uses the same data, but also illustrates how to use an optional
+ custom template to create custom UI renditions for list items. In this case,
+ each item has a popup QuickTip which displays the state's nickname when hovered over.
+</p>
+<div>
+ <input type="text" id="local-states-with-qtip" size="20"/>
+</div>
+<div id="state-combo-qtip-code-panel" style="margin-top:10px">
+<pre id="state-combo-qtip-code" class="code"><code>// simple array store
+var store = new Ext.data.SimpleStore({
+ fields: ['abbr', 'state', 'nick'],
+ data : exampleData
+});
+var comboWithTooltip = new Ext.form.ComboBox({
+ tpl: '<tpl for="."><div ext:qtip="{state}. {nick}" class="x-combo-list-item">{state}</div></tpl>',
+ store: store,
+ displayField:'state',
+ typeAhead: true,
+ mode: 'local',
+ triggerAction: 'all',
+ emptyText:'Select a state...',
+ selectOnFocus:true,
+ applyTo: 'local-states-with-qtip'
+});
+</code></pre></div>
<br />
<p>
@@ -100,7 +100,7 @@
});
</code></pre></div>
<br />
-
+
<p>
<b>Unobtrusive</b><br />
The combo box can very easily be used to convert existing select elements into auto-completing, filtering combos.
@@ -213,7 +213,7 @@
<option value="WY">Wyoming</option>
</select>
</p>
-<div id="transformed-combo-code-panel" style="margin-top:10px">
+<div id="transformed-combo-code-panel" style="margin-top:10px">
<pre id="transformed-combo-code" class="code"><code>var converted = new Ext.form.ComboBox({
typeAhead: true,
triggerAction: 'all',
Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/custom.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/custom.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/custom.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -45,7 +45,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<p>
<b>Custom Form Fields</b><br />
Ext provides many types of form fields to build interactive and rich forms. However, it also
Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/dynamic.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/dynamic.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/dynamic.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -20,7 +20,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css"/>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script>
+<script type="text/javascript" src="../shared/examples.js"></script>
<!-- EXAMPLES -->
<h1>Dynamic Forms built with JavaScript</h1>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/form-grid.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/form-grid.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/form-grid.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -12,41 +12,41 @@
<script type="text/javascript" src="../../ext-all-debug.js"></script>
- <script type="text/javascript" src="../code-display.js"></script>
- <script type="text/javascript" src="form-grid.js"></script>
+ <script type="text/javascript" src="../code-display.js"></script>
+ <script type="text/javascript" src="form-grid.js"></script>
<link rel="stylesheet" type="text/css" href="forms.css"/>
<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="../examples.css"/>
- <style type="text/css">
- p {
- width: 750px;
- }
- .ext-ie .x-form-check-wrap, .ext-gecko .x-form-check-wrap {
- padding-top: 3px;
- }
- fieldset legend {
- white-space: nowrap;
- }
- </style>
+ <style type="text/css">
+ p {
+ width: 750px;
+ }
+ .ext-ie .x-form-check-wrap, .ext-gecko .x-form-check-wrap {
+ padding-top: 3px;
+ }
+ fieldset legend {
+ white-space: nowrap;
+ }
+ </style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script>
+<script type="text/javascript" src="../shared/examples.js"></script>
<!-- EXAMPLES -->
<h1>Dynamic Form interacting with an embedded Grid</h1>
<p>
- This Form demonstrates the fact that by virtue of inheriting from the Ext <b><tt>Container</tt></b>
- class, an Ext.form.FormPanel can contain any Ext <b><tt>Component</tt></b>. This includes all the
+ This Form demonstrates the fact that by virtue of inheriting from the Ext <b><tt>Container</tt></b>
+ class, an Ext.form.FormPanel can contain any Ext <b><tt>Component</tt></b>. This includes all the
subclasses of Ext.Panel, including the GridPanel.
-</p>
-<p>
- The Grid demonstrates the use of creation of derived fields in a Record created using a custom
- <b><tt>convert</tt></b> function, and the use of column renderers.
-</p>
-<p>
- The Form demonstrates the use of radio buttons grouped by name being set by the value of the derived
- 'rating' field.
-</p>
+</p>
+<p>
+ The Grid demonstrates the use of creation of derived fields in a Record created using a custom
+ <b><tt>convert</tt></b> function, and the use of column renderers.
+</p>
+<p>
+ The Form demonstrates the use of radio buttons grouped by name being set by the value of the derived
+ 'rating' field.
+</p>
</body>
</html>
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/forum-search.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/forum-search.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/forum-search.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -22,7 +22,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<p>
<b>Combo with Templates and Ajax</b><br />
This is a more advanced example that shows how you can combine paging, Ext.Template and a remote data store
Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/xml-form.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/xml-form.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/xml-form.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -19,7 +19,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Loading/Saving a Dynamic Form using XML</h1>
<p>
This is a very simple example of using XML for load and submit of data with an Ext dynamic form.
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -19,7 +19,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Array Grid Example</h1>
<p>This example shows how to create a grid from Array data.</p>
<p>Note that the js is not minified so it is readable. See <a href="array-grid.js">array-grid.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -87,6 +87,4 @@
title:'Array Grid'
});
grid.render('grid-example');
-
- grid.getSelectionModel().selectFirstRow();
});
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/custom-grid.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/custom-grid.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/custom-grid.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -18,7 +18,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Property Grid</h1>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -20,7 +20,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Editor Grid Example</h1>
<p>This example shows how to create a grid with inline editing.</p>
<p>Note that the js is not minified so it is readable. See <a href="edit-grid.js">edit-grid.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/from-markup.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/from-markup.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/from-markup.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -20,7 +20,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>From Markup Grid Example</h1>
<p>This example shows how to create a grid with from an existing, unformatted HTML table.</p>
<p>Note that the js is not minified so it is readable. See <a href="from-markup.js">from-markup.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/grid3.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/grid3.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/grid3.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -46,7 +46,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>GridView3 Example</h1>
<p>Note that the js is not minified so it is readable. See <a href="grid3.js">grid3.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/grouping.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/grouping.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/grouping.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -45,7 +45,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>GridView3 Grouping</h1>
<p>Note that the js is not minified so it is readable. See <a href="grouping.js">grouping.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/paging.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/paging.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/paging.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -20,7 +20,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Paging Grid Example</h1>
<p>This example shows how to create a grid with paging. This grid uses a ScriptTagProxy to fetch cross-domain
remote data (from the Ext forums).</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/totals.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/totals.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/totals.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -54,7 +54,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Group Summary Plugin</h1>
<p>Note that the js is not minified so it is readable. See <a href="totals.js">totals.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/xml-grid.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/xml-grid.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/xml-grid.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -18,7 +18,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>XML Grid Example</h1>
<p>This example shows how to load a grid with XML data.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/layout/accordion.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/layout/accordion.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/layout/accordion.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -84,6 +84,6 @@
</script>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
</body>
</html>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/layout/anchor.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/layout/anchor.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/layout/anchor.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -46,6 +46,6 @@
</script>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
</body>
</html>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/layout/column.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/layout/column.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/layout/column.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -115,6 +115,6 @@
</script>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
</body>
</html>
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/examples/layout/complex.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/layout/complex.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/layout/complex.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -142,7 +142,7 @@
</script>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<div id="west">
<p>Hi. I'm the west panel.</p>
</div>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/layout/table.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/layout/table.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/layout/table.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -54,6 +54,6 @@
</script>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
</body>
</html>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/locale/dutch-form.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/locale/dutch-form.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/locale/dutch-form.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -22,7 +22,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Localization with Ext</h1>
<p>
This demonstrates a dutch location of Ext using the form component. It includes the localization
Modified: mickael/trunk/ext/v3.0.0-a1/examples/locale/multi-lang.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/locale/multi-lang.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/locale/multi-lang.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -14,7 +14,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body class="x-gray">
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<script type="text/javascript">
var params = Ext.urlDecode(window.location.search.substring(1));
if (params.lang) {
Modified: mickael/trunk/ext/v3.0.0-a1/examples/menu/actions.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/menu/actions.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/menu/actions.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -19,7 +19,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Using Ext.Action</h1>
<p>Actions let you share handlers, configuration and updates across Toolbar, Button and Menu components.</p>
<p>The js is not minified so it is readable. See <a href="actions.js">actions.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -20,7 +20,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Toolbar with Menus</h1>
<p>The js is not minified so it is readable. See <a href="menus.js">menus.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/message-box/msg-box.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/message-box/msg-box.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/message-box/msg-box.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -23,7 +23,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>MessageBox Dialogs</h1>
<p>The example shows how to use the MessageBox class. Some of the buttons have animations, some are normal.</p>
<p>The js is not minified so it is readable. See <a href="msg-box.js">msg-box.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/organizer/organizer.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/organizer/organizer.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/organizer/organizer.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -20,7 +20,7 @@
<link rel="stylesheet" type="text/css" href="organizer.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Organizing Images into Albums</h1>
<p>This example shows demonstrates how you can drop anything into the tree.</p>
<p>This example also shows how a customized DragZone can be
Modified: mickael/trunk/ext/v3.0.0-a1/examples/panel/panels.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/panel/panels.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/panel/panels.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -27,7 +27,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Ext.Panel</h1>
<p>The js is not minified so it is readable. See <a href="panels.js">panels.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/portal/portal.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/portal/portal.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/portal/portal.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -20,6 +20,6 @@
<script type="text/javascript" src="sample-grid.js"></script>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
</body>
</html>
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/examples/resizable/basic.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/resizable/basic.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/resizable/basic.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -48,7 +48,7 @@
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Resizable Examples</h1>
<p>These examples show how to apply a floating (default) and pinned Resizable component to a standard element.</p>
<p>Note that the js is not minified so it is readable. See <a href="basic.js">basic.js</a> for the full source code.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/samples.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/samples.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/samples.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -1,213 +1,409 @@
-SamplePanel = Ext.extend(Ext.Panel, {
- autoHeight: true,
- frame:true,
- collapsible: true,
- cls:'demos',
-
- afterRender : function(){
- SamplePanel.superclass.afterRender.call(this);
- this.tpl.overwrite(this.body, this);
- },
-
- tpl : new Ext.XTemplate(
- '<dl>',
- '<tpl for="samples">',
- '<dt><a href="{url}" target="_blank"><img src="shared/screens/{icon}"/></a><br/>',
- '<span>{text}</span>',
- '</dt>',
- '</tpl>',
- '</dl><div style="clear:both"></div>'
- )
-});
-
-Ext.EventManager.on(window, 'load', function(){
-
- var catalog = [{
- title: 'Combination Samples',
- samples: [{
- text: 'Feed Viewer',
- url: 'feed-viewer/view.html',
- icon: 'feeds.gif'
- },{
- text: 'Simple Tasks (<a href="http://gears.google.com" target="_blank">Google Gears</a>)',
- url: 'tasks/tasks.html',
- icon: 'tasks.gif'
- },{
- text: 'Simple Tasks (<a href="http://labs.adobe.com/technologies/air/" target="_blank">Adobe AIR</a>)',
- url: 'http://extjs.com/blog/2007/06/29/building-a-desktop-application-with-ext-air-aptana-and-red-bull/',
- icon: 'air.gif'
- },{
- text: 'Image Organizer',
- url: 'organizer/organizer.html',
- icon: 'organizer.gif'
- },{
- text: 'Web Desktop',
- url: 'desktop/desktop.html',
- icon: 'desktop.gif'
- }]
- },{
- title: 'Grids',
- samples: [{
- text: 'Basic Array Grid',
- url: 'grid/array-grid.html',
- icon: 'grid-array.gif'
- },{
- text: 'Editable Grid',
- url: 'grid/edit-grid.html',
- icon: 'grid-edit.gif'
- },{
- text: 'XML Grid',
- url: 'grid/xml-grid.html',
- icon: 'grid-xml.gif'
- },{
- text: 'Paging',
- url: 'grid/paging.html',
- icon: 'grid-paging.gif'
- },{
- text: 'Grouping',
- url: 'grid/grouping.html',
- icon: 'grid-grouping.gif'
- },{
- text: 'Live Group Summary',
- url: 'grid/totals.html',
- icon: 'grid-summary.gif'
- },{
- text: 'Customizing: Grid Plugins',
- url: 'grid/grid3.html',
- icon: 'grid-plugins.gif'
- }]
- },{
- title: 'Tabs',
- samples: [{
- text: 'Basic Tabs',
- url: 'tabs/tabs.html',
- icon: 'tabs.gif'
- },{
- text: 'Advanced Tabs',
- url: 'tabs/tabs-adv.html',
- icon: 'tabs-adv.gif'
- }]
- },{
- title: 'Windows',
- samples: [{
- text: 'Hello World',
- url: 'window/hello.html',
- icon: 'window.gif'
- },{
- text: 'MessageBox',
- url: 'message-box/msg-box.html',
- icon: 'msg-box.gif'
- },{
- text: 'Layout Window',
- url: 'window/layout.html',
- icon: 'window-layout.gif'
- }]
- },{
- title: 'Trees',
- samples: [{
- text: 'Drag and Drop Reordering',
- url: 'tree/reorder.html',
- icon: 'tree-reorder.gif'
- },{
- text: 'Multiple trees',
- url: 'tree/two-trees.html',
- icon: 'tree-two.gif'
- },{
- text: 'Customizing: Column Tree',
- url: 'tree/column-tree.html',
- icon: 'tree-columns.gif'
- }]
- },{
- title: 'Layout Managers',
- samples: [{
- text: 'Border Layout',
- url: 'layout/complex.html',
- icon: 'border-layout.gif'
- },{
- text: 'Anchor Layout',
- url: 'form/anchoring.html',
- icon: 'anchor.gif'
- },{
- text: 'Customizing: Portals',
- url: 'portal/portal.html',
- icon: 'portal.gif'
- }]
- },{
- title: 'ComboBox',
- samples: [{
- text: 'Basic ComboBox',
- url: 'form/combos.html',
- icon: 'combo.gif'
- },{
- text: 'Customizing: ComboBox Templates',
- url: 'form/forum-search.html',
- icon: 'combo-custom.gif'
- }]
- },{
- title: 'Forms',
- samples: [{
- text: 'Dynamic Forms',
- url: 'form/dynamic.html',
- icon: 'form-dynamic.gif'
- },{
- text: 'Ajax with XML Forms',
- url: 'form/xml-form.html',
- icon: 'form-xml.gif'
- },{
- text: 'Customizing: Search Field',
- url: 'form/custom.html',
- icon: 'form-custom.gif'
- }]
- },{
- title: 'Toolbars and Menus',
- samples: [{
- text: 'Basic Toolbar',
- url: 'menu/menus.html',
- icon: 'toolbar.gif'
- },{
- text: 'Ext Actions',
- url: 'menu/actions.html',
- icon: 'toolbar-actions.gif'
- }]
- },{
- title: 'Miscellaneous',
- samples: [{
- text: 'DataView',
- url: 'view/data-view.html',
- icon: 'data-view.gif'
- },{
- text: 'DataView (advanced)',
- url: 'view/chooser.html',
- icon: 'chooser.gif'
- },{
- text: 'Progress Bar',
- url: 'simple-widgets/progress-bar.html',
- icon: 'progress.gif'
- },{
- text: 'Templates',
- url: 'core/templates.html',
- icon: 'templates.gif'
- },{
- text: 'Panels',
- url: 'panel/panels.html',
- icon: 'panel.gif'
- },{
- text: 'Resizable',
- url: 'resizable/basic.html',
- icon: 'resizable.gif'
- }]
- }];
-
- for(var i = 0, c; c = catalog[i]; i++){
- c.id = 'sample-' + i;
- new SamplePanel(c).render('all-demos');
- }
-
- var tpl = new Ext.XTemplate(
- '<dl><tpl for="."><dt><a href="#{id}">{title:stripTags}</a></dt></tpl></dl>'
- );
- tpl.overwrite('demo-menu', catalog);
-
- Ext.select('#sample-spacer').remove();
- Ext.get('loading').fadeOut({remove: true});
+SamplePanel = Ext.extend(Ext.DataView, {
+ autoHeight: true,
+ frame:true,
+ cls:'demos',
+ itemSelector: 'dd',
+ overClass: 'over',
+
+ tpl : new Ext.XTemplate(
+ '<div id="sample-ct">',
+ '<tpl for=".">',
+ '<div><a name="{id}"></a><h2><div>{title}</div></h2>',
+ '<dl>',
+ '<tpl for="samples">',
+ '<dd ext:url="{url}"><img src="shared/screens/{icon}"/>',
+ '<div><h4>{text}</h4><p>{desc}</p></div>',
+ '</dd>',
+ '</tpl>',
+ '<div style="clear:left"></div></dl></div>',
+ '</tpl>',
+ '</div>'
+ ),
+
+ onClick : function(e){
+ var group = e.getTarget('h2', 3, true);
+ if(group){
+ group.up('div').toggleClass('collapsed');
+ }else {
+ var t = e.getTarget('dd', 5, true);
+ if(t && !e.getTarget('a', 2)){
+ var url = t.getAttributeNS('ext', 'url');
+ window.open(url);
+ }
+ }
+ return SamplePanel.superclass.onClick.apply(this, arguments);
+ }
+});
+
+
+Ext.EventManager.on(window, 'load', function(){
+
+ var catalog = [{
+ title: 'Combination Samples',
+ samples: [{
+ text: 'Feed Viewer 2.0',
+ url: 'feed-viewer/view.html',
+ icon: 'feeds.gif',
+ desc: 'RSS 2.0 feed reader sample application that features a swappable reader panel layout.'
+ },{
+ text: 'Simple Tasks 2.0',
+ url: 'http://extjs.com/blog/2008/02/24/tasks2/',
+ icon: 'air.gif',
+ desc: 'Complete personal task management application sample that runs on <a href="http://labs.adobe.com/technologies/air/" target="_blank">Adobe AIR</a>.'
+ },{
+ text: 'Simple Tasks',
+ url: 'tasks/tasks.html',
+ icon: 'tasks.gif',
+ desc: 'Personal task management application sample that uses <a href="http://gears.google.com" target="_blank">Google Gears</a> for data storage.'
+ },{
+ text: 'Image Organizer',
+ url: 'organizer/organizer.html',
+ icon: 'organizer.gif',
+ desc: 'DataView and TreePanel sample that demonstrates dragging data items from a DataView into a TreePanel.'
+ },{
+ text: 'Web Desktop',
+ url: 'desktop/desktop.html',
+ icon: 'desktop.gif',
+ desc: 'Demonstrates how one could build a desktop in the browser using Ext components including a module plugin system.'
+ }]
+ },{
+ title: 'Grids',
+ samples: [{
+ text: 'Basic Array Grid',
+ url: 'grid/array-grid.html',
+ icon: 'grid-array.gif',
+ desc: 'A basic read-only grid loaded from local array data that demonstrates the use of custom column renderer functions.'
+ },{
+ text: 'Editable Grid',
+ url: 'grid/edit-grid.html',
+ icon: 'grid-edit.gif',
+ desc: 'An editable grid loaded from XML that shows multiple types of grid editors as well as defining custom data records.'
+ },{
+ text: 'XML Grid',
+ url: 'grid/xml-grid.html',
+ icon: 'grid-xml.gif',
+ desc: 'A simple read-only grid loaded from XML data.'
+ },{
+ text: 'Paging',
+ url: 'grid/paging.html',
+ icon: 'grid-paging.gif',
+ desc: 'A grid with paging, cross-domain data loading and custom- rendered expandable row bodies.'
+ },{
+ text: 'Grouping',
+ url: 'grid/grouping.html',
+ icon: 'grid-grouping.gif',
+ desc: 'A basic grouping grid showing collapsible data groups that can be customized via the "Group By" header menu option.'
+ },{
+ text: 'Live Group Summary',
+ url: 'grid/totals.html',
+ icon: 'grid-summary.gif',
+ desc: 'Advanced grouping grid that allows cell editing and includes custom dynamic summary calculations.'
+ },{
+ text: 'Grid Plugins',
+ url: 'grid/grid3.html',
+ icon: 'grid-plugins.gif',
+ desc: 'Multiple grids customized via plugins: expander rows, checkbox selection and row numbering.'
+ },{
+ text: 'Grid Filtering',
+ url: 'grid-filtering/grid-filter.html',
+ icon: 'grid-filter.gif',
+ desc: 'Grid plugins providing custom data filtering menus that support various data types.'
+ },{
+ text: 'Grid From Markup',
+ url: 'grid/from-markup.html',
+ icon: 'grid-from-markup.gif',
+ desc: 'Custom GridPanel extension that can convert a plain HTML table into a dynamic grid at runtime.'
+ },{
+ text: 'Grid Data Binding (basic)',
+ url: 'grid/binding.html',
+ icon: 'grid-data-binding.gif',
+ desc: 'Data binding a grid to a detail preview panel via the grid\'s RowSelectionModel.'
+ },{
+ text: 'Grid Data Binding (advanced)',
+ url: 'grid/binding-with-classes.html',
+ icon: 'grid-data-binding.gif',
+ desc: 'Refactoring the basic data binding example to use a class-based application design model.'
+ }]
+ },{
+ title: 'Tabs',
+ samples: [{
+ text: 'Basic Tabs',
+ url: 'tabs/tabs.html',
+ icon: 'tabs.gif',
+ desc: 'Basic tab functionality including autoHeight, tabs from markup, Ajax loading and tab events.'
+ },{
+ text: 'Advanced Tabs',
+ url: 'tabs/tabs-adv.html',
+ icon: 'tabs-adv.gif',
+ desc: 'Advanced tab features including tab scrolling, adding tabs programmatically and a context menu plugin.'
+ }]
+ },{
+ title: 'Windows',
+ samples: [{
+ text: 'Hello World',
+ url: 'window/hello.html',
+ icon: 'window.gif',
+ desc: 'Simple "Hello World" window that contains a basic TabPanel.'
+ },{
+ text: 'MessageBox',
+ url: 'message-box/msg-box.html',
+ icon: 'msg-box.gif',
+ desc: 'Different styles include confirm, alert, prompt, progress and wait and also support custom icons.'
+ },{
+ text: 'Layout Window',
+ url: 'window/layout.html',
+ icon: 'window-layout.gif',
+ desc: 'A window containing a basic BorderLayout with nested TabPanel.'
+ }]
+ },{
+ title: 'Trees',
+ samples: [{
+ text: 'Drag and Drop Reordering',
+ url: 'tree/reorder.html',
+ icon: 'tree-reorder.gif',
+ desc: 'A TreePanel loaded asynchronously via a JSON TreeLoader that shows drag and drop with container scroll.'
+ },{
+ text: 'Multiple trees',
+ url: 'tree/two-trees.html',
+ icon: 'tree-two.gif',
+ desc: 'Drag and drop between two different sorted TreePanels.'
+ },{
+ text: 'Column Tree',
+ url: 'tree/column-tree.html',
+ icon: 'tree-columns.gif',
+ desc: 'A custom TreePanel implementation that demonstrates extending an existing component.'
+ },{
+ text: 'XML Tree Loader',
+ url: 'tree/xml-tree-loader.html',
+ icon: 'tree-xml-loader.gif',
+ desc: 'A custom TreeLoader implementation that demonstrates loading a tree from an XML document.'
+ }]
+ },{
+ title: 'Layout Managers',
+ samples: [{
+ text: 'Layout Browser',
+ url: 'layout-browser/layout-browser.html',
+ icon: 'layout-browser.gif',
+ desc: 'Includes examples for each standard Ext layout, several custom layouts and combination examples.'
+ },{
+ text: 'Border Layout',
+ url: 'layout/complex.html',
+ icon: 'border-layout.gif',
+ desc: 'A complex BorderLayout implementation that shows nesting multiple components and sub-layouts.'
+ },{
+ text: 'Anchor Layout',
+ url: 'form/anchoring.html',
+ icon: 'anchor.gif',
+ desc: 'A simple example of anchoring form fields to a window for flexible form resizing.'
+ },{
+ text: 'Portal Demo',
+ url: 'portal/portal.html',
+ icon: 'portal.gif',
+ desc: 'A page layout using several custom extensions to provide a web portal interface.'
+ }]
+ },{
+ title: 'ComboBox',
+ samples: [{
+ text: 'Basic ComboBox',
+ url: 'form/combos.html',
+ icon: 'combo.gif',
+ desc: 'Basic combos, combos rendered from markup and customized list layout to provide item tooltips.'
+ },{
+ text: 'ComboBox Templates',
+ url: 'form/forum-search.html',
+ icon: 'combo-custom.gif',
+ desc: 'Customized combo with template-based list rendering, remote loading and paging.'
+ }]
+ },{
+ title: 'Forms',
+ samples: [{
+ text: 'Dynamic Forms',
+ url: 'form/dynamic.html',
+ icon: 'form-dynamic.gif',
+ desc: 'Various example forms showing collapsible fieldsets, column layout, nested TabPanels and more.'
+ },{
+ text: 'Ajax with XML Forms',
+ url: 'form/xml-form.html',
+ icon: 'form-xml.gif',
+ desc: 'Ajax-loaded form fields from remote XML data and remote field validation on submit.'
+ },{
+ text: 'Custom Search Field',
+ url: 'form/custom.html',
+ icon: 'form-custom.gif',
+ desc: 'A TriggerField search extension combined with an XTemplate for custom results rendering.'
+ },{
+ text: 'Binding a Grid to a Form',
+ url: 'form/form-grid.html',
+ icon: 'form-grid-binding.gif',
+ desc: 'A grid embedded within a FormPanel that automatically loads records into the form on row selection.'
+ },{
+ text: 'Advanced Validation',
+ url: 'form/adv-vtypes.html',
+ icon: 'form-adv-vtypes.gif',
+ desc: 'Relational form field validation using custom vtypes.'
+ },{
+ text: 'Checkbox/Radio Groups',
+ url: 'form/check-radio.html',
+ icon: 'form-check-radio.gif',
+ desc: 'Many examples showing different checkbox and radio group configurations.'
+ },{
+ text: 'File Upload Field',
+ url: 'form/file-upload.html',
+ icon: 'form-file-upload.gif',
+ desc: 'A demo of how to give standard file upload fields a bit of Ext style using a custom class.'
+ },{
+ text: 'MultiSelect and ItemSelector',
+ url: 'multiselect/multiselect-demo.html',
+ icon: 'form-multiselect.gif',
+ desc: 'Example controls for selecting a list of items in forms.'
+ }]
+ },{
+ title: 'Toolbars and Menus',
+ samples: [{
+ text: 'Basic Toolbar',
+ url: 'menu/menus.html',
+ icon: 'toolbar.gif',
+ desc: 'Toolbar and menus that contain various components like date pickers, color pickers, sub-menus and more.'
+ },{
+ text: 'Ext Actions',
+ url: 'menu/actions.html',
+ icon: 'toolbar-actions.gif',
+ desc: 'Bind the same behavior to multiple buttons, toolbar and menu items using the Ext.Action class.'
+ }]
+ },{
+ title: 'Templates and DataView',
+ samples: [{
+ text: 'Templates',
+ url: 'core/templates.html',
+ icon: 'templates.gif',
+ desc: 'A simple example of rendering views from templates bound to data objects.'
+ },{
+ text: 'DataView',
+ url: 'view/data-view.html',
+ icon: 'data-view.gif',
+ desc: 'A basic DataView with custom plugins for editable labels and drag selection of items.'
+ },{
+ text: 'DataView (advanced)',
+ url: 'view/chooser.html',
+ icon: 'chooser.gif',
+ desc: 'A more customized DataView supporting sorting and filtering with multiple templates.'
+ }]
+ },{
+ title : 'Drag and Drop',
+ samples : [{
+ text : 'Grid to Grid Drag and Drop',
+ url : 'dd/dnd_grid_to_grid.html',
+ icon : 'dd-gridtogrid.gif',
+ desc : 'A simple drag and drop from grid to grid implementation.'
+ },{
+ text : 'Grid to FormPanel Drag and Drop',
+ url : 'dd/dnd_grid_to_formpanel.html',
+ icon : 'dd-gridtoformpanel.gif',
+ desc : 'A basic drag and drop from grid to formpanel.'
+ },{
+ text : 'Custom Drag and Drop',
+ url : 'dd/dragdropzones.html',
+ icon : 'dd-zones.gif',
+ desc : 'Enabling drag and drop between a DataView and a grid using DragZone and DropZone extensions.'
+ }]
+ },{
+ title: 'Miscellaneous',
+ samples: [{
+ text: 'History',
+ url: 'history/history.html',
+ icon: 'history.gif',
+ desc: 'A History manager that allows the user to navigate an Ext UI via browser back/forward.'
+ },{
+ text: 'Google Maps',
+ url: 'window/gmap.html',
+ icon: 'gmap-panel.gif',
+ desc: 'A Google Maps wrapper class that enables easy display of dynamic maps in Ext panels and windows.'
+ },{
+ text: 'StatusBar',
+ url: 'statusbar/statusbar-demo.html',
+ icon: 'statusbar.gif',
+ desc: 'A simple StatusBar that can be dropped into the bottom of any panel to display status text and icons.'
+ },{
+ text: 'StatusBar (advanced)',
+ url: 'statusbar/statusbar-advanced.html',
+ icon: 'statusbar-plugin.gif',
+ desc: 'Customizing the StatusBar via a plugin to provide automatic form validation monitoring and error linking.'
+ },{
+ text: 'Slider',
+ url: 'slider/slider.html',
+ icon: 'slider.gif',
+ desc: 'A slider component that supports vertical mode, snapping, tooltips, customized styles and more.'
+ },{
+ text: 'QuickTips',
+ url: 'simple-widgets/qtips.html',
+ icon: 'qtips.gif',
+ desc: 'Various tooltip and quick tip configuration options including Ajax loading and mouse tracking.'
+ },{
+ text: 'Progress Bar',
+ url: 'simple-widgets/progress-bar.html',
+ icon: 'progress.gif',
+ desc: 'A basic progress bar component shown in various configurations and with custom styles.'
+ },{
+ text: 'Panels',
+ url: 'panel/panels.html',
+ icon: 'panel.gif',
+ desc: 'A basic collapsible panel example.'
+ },{
+ text: 'Resizable',
+ url: 'resizable/basic.html',
+ icon: 'resizable.gif',
+ desc: 'Examples of making any element resizable with various configuration options.'
+ },{
+ text: 'Spotlight',
+ url: 'core/spotlight.html',
+ icon: 'spotlight.gif',
+ desc: 'A utility for masking everything except a single element on the page to visually highlight it.'
+ },{
+ text: 'Localization (static)',
+ url: 'locale/dutch-form.html',
+ icon: 'locale-dutch.gif',
+ desc: 'Demonstrates fully localizing a form by including a custom locale script.'
+ },{
+ text: 'Localization (dynamic)',
+ url: 'locale/multi-lang.html',
+ icon: 'locale-switch.gif',
+ desc: 'Dynamically render various Ext components in different locales by selecting from a locale list.'
+ }]
+ }];
+
+ for(var i = 0, c; c = catalog[i]; i++){
+ c.id = 'sample-' + i;
+ }
+
+ var store = new Ext.data.JsonStore({
+ idProperty: 'id',
+ fields: ['id', 'title', 'samples'],
+ data: catalog
+ });
+
+ new Ext.Panel({
+ autoHeight: true,
+ collapsible: true,
+ frame: true,
+ title: 'View Samples',
+ items: new SamplePanel({
+ store: store
+ })
+ }).render('all-demos');
+
+ var tpl = new Ext.XTemplate(
+ '<tpl for="."><li><a href="#{id}">{title:stripTags}</a></li></tpl>'
+ );
+ tpl.overwrite('sample-menu', catalog);
+
+ Ext.select('#sample-spacer').remove();
+
+ setTimeout(function(){
+ Ext.get('loading').remove();
+ Ext.get('loading-mask').fadeOut({remove:true});
+ }, 250);
+
+ if(window.console && window.console.firebug){
+ Ext.Msg.alert('Warning', 'Firebug is known to cause performance issues with Ext JS.');
+ }
});
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/examples/simple-widgets/progress-bar.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/simple-widgets/progress-bar.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/simple-widgets/progress-bar.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -17,7 +17,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Progress Bar</h1>
<p>The example shows how to use the ProgressBar class. The js is not minified so it is readable.
See <a href="progress-bar.js">progress-bar.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/simple-widgets/qtips.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/simple-widgets/qtips.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/simple-widgets/qtips.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -35,7 +35,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Tips examples</h1>
<p>Note that the js and css is not minified so it is readable. See <a href="qtips.js">qtips.js</a> for the tip creation code
Modified: mickael/trunk/ext/v3.0.0-a1/examples/slider/slider.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/slider/slider.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/slider/slider.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -18,7 +18,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css">
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script>
+<script type="text/javascript" src="../shared/examples.js"></script>
<!-- EXAMPLES -->
<h1>Ext Slider Example</h1>
<p>Sliders support keyboard adjustments, configurable snapping, axis clicking and animation.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/tabs/tabs-adv.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/tabs/tabs-adv.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/tabs/tabs-adv.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -19,7 +19,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
- <script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+ <script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Advanced Tabs</h1>
<p>Note that the js and css is not minified so it is readable. See <a href="tabs-adv.js">tabs-adv.js</a> for the tab creation code.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/tabs/tabs.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/tabs/tabs.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/tabs/tabs.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -21,7 +21,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Tab Panel Examples</h1>
<p>Note that the js and css is not minified so it is readable. See <a href="tabs-example.js">tabs-example.js</a> for the tab creation code
Modified: mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -18,7 +18,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css"/>
</head>
<body id="docbody">
-<script type="text/javascript" src="../examples.js"></script>
+<script type="text/javascript" src="../shared/examples.js"></script>
<!-- EXAMPLES -->
<h1>Toolbars</h1>
<div id="content" class="x-hidden">
Modified: mickael/trunk/ext/v3.0.0-a1/examples/toolbar/toolbars.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/toolbar/toolbars.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/toolbar/toolbars.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -18,7 +18,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css"/>
</head>
<body id="docbody">
-<script type="text/javascript" src="../examples.js"></script>
+<script type="text/javascript" src="../shared/examples.js"></script>
<!-- EXAMPLES -->
<h1>Toolbars</h1>
<p>The js is not minified so it is readable. See <a href="toolbars.js">toolbars.js</a>.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/tree/column-tree.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/tree/column-tree.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/tree/column-tree.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -21,7 +21,7 @@
<link rel="stylesheet" type="text/css" href="column-tree.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Customizing TreePanel</h1>
<p>This example demonstrates how you can customize a TreePanel to display basic columns.</p>
</body>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/tree/reorder.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/tree/reorder.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/tree/reorder.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -16,7 +16,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Drag and Drop ordering in a TreePanel</h1>
<p>This example shows basic drag and drop node moving in a tree. In this implementation there are no restrictions and
anything can be dropped anywhere except appending to nodes marked "leaf" (the files).</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/tree/two-trees.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/tree/two-trees.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/tree/two-trees.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -31,7 +31,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Drag and Drop betweens two TreePanels</h1>
<p>The TreePanels have a TreeSorter applied in "folderSort" mode.</p>
<p>Both TreePanels are in "appendOnly" drop mode since they are sorted.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/tree/xml-tree-loader.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/tree/xml-tree-loader.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/tree/xml-tree-loader.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -11,7 +11,7 @@
<script type="text/javascript" src="xml-tree-loader.js"></script>
<link rel="stylesheet" type="text/css" href="../examples.css" />
- <script type="text/javascript" src="../examples.js"></script>
+ <script type="text/javascript" src="../shared/examples.js"></script>
</head>
<body>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/view/chooser.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/view/chooser.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/view/chooser.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -20,7 +20,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body class="xtheme-gray">
- <script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+ <script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Advanced DataView Example</h1>
<p>This example shows loading a DataView in a Window. Each item has a linked details view, and the DataView
supports custom sorting and filtering.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/view/data-view.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/view/data-view.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/view/data-view.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -18,7 +18,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>DataView Example</h1>
<p>This example shows how to use an Ext.DataView. It demonstrates editable labels (click<br />
Modified: mickael/trunk/ext/v3.0.0-a1/examples/view/list-view.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/view/list-view.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/view/list-view.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -18,7 +18,7 @@
<link rel="stylesheet" type="text/css" href="../examples.css" />
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>ListView Example</h1>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/window/hello.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/window/hello.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/window/hello.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -25,7 +25,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->
+<script type="text/javascript" src="../shared/examples.js"></script><!-- EXAMPLES -->
<h1>Hello World Window</h1>
<p>This example shows how to create a very simple modal Window with "autoTabs" from existing markup.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/examples/window/layout.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/window/layout.html 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/examples/window/layout.html 2008-11-21 14:33:19 UTC (rev 31)
@@ -28,7 +28,7 @@
</style>
</head>
<body>
-<script type="text/javascript" src="../examples.js"></script>
+<script type="text/javascript" src="../shared/examples.js"></script>
<!-- EXAMPLES -->
<h1>Windows with Layouts</h1>
<p>This example shows how Ext containers can be nested in windows to create advanced layouts.</p>
Modified: mickael/trunk/ext/v3.0.0-a1/ext-all-debug.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/ext-all-debug.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/ext-all-debug.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -5648,493 +5648,7 @@
return Ext.lib.Ajax.serializeForm(form);
}
});
-(function(){
- var transactions = {}, TID = 0, impl, d, pollStartTimer = 0,
- callBuffer = [], callTask, providers = {};
-
- var get = function(id){
- return transactions[id] || {};
- }
-
- var createEvent = function(t, data, xhr, success, hs){
- return Ext.apply(t || {}, {
- xhr: xhr,
- success: success,
- data: data,
- arg: hs
- });
- }
-
- var doCallback = function(data, t, success, xhr){
- var fn = success ? 'success' : 'failure';
- if(t && t.cb){
- var hs = t.cb;
- var e = createEvent(t, data, xhr, success, hs);
- if(typeof hs == 'function'){
- delete e.arg;
- hs(data, e);
- } else{
- Ext.callback(hs[fn], hs.scope, [data, e]);
- Ext.callback(hs.callback, hs.scope, [data, e]);
- }
- }
- }
-
- var handleEvent = function(data, xhr){
- if(!data){
- return;
- }
- var t = get(data.tid);
- switch(data.type){
- case 'rpc':
- if(t){
- doCallback(data.result, t, true, xhr);
- data.xhr = xhr;
- d.fireEvent('event', data);
- delete transactions[data.tid];
- } else{
- data.xhr = xhr;
- d.fireEvent('event', data);
- }
- break;
- case 'event':
- data.xhr = xhr;
- d.fireEvent(data.name, data);
- d.fireEvent('event', data);
- break;
- case 'exception':
- if(t){
- t.code = data.code;
- t.message = data.message;
- t.trace = data.where;
- doCallback(data.result, t, false, xhr);
- data.xhr = xhr;
- d.fireEvent('exception', data);
- delete transactions[data.tid];
- } else{
- data.xhr = xhr;
- d.fireEvent('exception', data);
- }
- if(data.where && d.enableDebug){ // testing
- Ext.Msg.maxWidth = 800;
- Ext.Msg.show({
- title: 'Exception occurred while making a remote call to the server',
- msg: 'Stack trace from the server:',
- buttons: Ext.MessageBox.OK,
- multiline: 400,
- width:800,
- value: data.message + '\n' + data.where
- });
- }
- break;
- }
- }
-
- var handleException = function(opt, xhr, type){
- var t = get(opt.tid);
- if(t){
- t.xhr = xhr;
- t.type = type || d.exceptions.TRANSPORT;
- doCallback(null, t, false, xhr);
- d.fireEvent('exception', t);
- delete transactions[opt.tid];
- } else{
- d.fireEvent('exception', {
- tid: opt.tid,
- xhr: xhr,
- code: type || d.exceptions.TRANSPORT
- });
- }
- }
-
- var cb = function(opt, success, xhr){
- if(success){
- var data = null;
- if(!Ext.isEmpty(xhr.responseText)){
- if(typeof xhr.responseText == 'object'){
- data = xhr.responseText;
- }else{
- try{
- data = Ext.decode(xhr.responseText);
- } catch(e){
- return handleException(opt, xhr, d.exceptions.PARSE);
- }
- }
- if(Ext.isArray(data)){
- for(var i = 0, len = data.length; i < len; i++){
- handleEvent(data[i], xhr);
- }
- } else{
- handleEvent(data, xhr);
- }
- } else if(opt.ts){
- for(var j = 0, len = opt.ts.length; j < len; j++){
- doCallback(null, transactions[opt.ts[j].tid], true, xhr);
- }
- }
- } else{
- handleException(opt, xhr);
- }
- }
-
- var doSend = function(data){
- if(d.enableUrlEncode){
- var params = {};
- params[typeof d.enableUrlEncode == 'string' ? d.enableUrlEncode : 'data'] = Ext.encode(data);
- Ext.Ajax.request({
- url: d.remoteUrl,
- params: params,
- callback: cb,
- ts: data
- });
- }else{
- Ext.Ajax.request({
- url: d.remoteUrl,
- jsonData: data,
- callback: cb,
- ts: data
- });
- }
- }
-
- var combineAndSend = function(){
- var len = callBuffer.length;
- if(len > 0){
- doSend(len == 1 ? callBuffer[0] : callBuffer);
- callBuffer = [];
- }
- }
-
- var doCall = function(c, m, args){
- var data = null, hs = args[m.len], scope = args[m.len+1];
- var t = {
- tid: ++TID,
- args: args,
- action: c,
- method: m,
- cb: scope && typeof hs == 'function' ? hs.createDelegate(scope) : hs
- };
- if(d.fireEvent('beforecall', t) !== false){
- transactions[t.tid] = t;
-
- if(m.len !== 0){
- data = args.slice(0, m.len);
- }
-
- callBuffer.push({
- action: c,
- method: m.name,
- tid: t.tid,
- data: data
- });
-
- if(d.enableBuffer){
- if(!callTask){
- callTask = new Ext.util.DelayedTask(combineAndSend);
- }
- callTask.delay(typeof d.enableBuffer == 'number' ? d.enableBuffer : 10);
- }else{
- combineAndSend();
- }
- d.fireEvent('call', t);
- }
- }
-
- var doForm = function(c, m, form, callback, scope){
- var t = {
- tid: ++TID,
- action: c,
- method: m,
- args:[form, callback, scope],
- cb: scope && typeof callback == 'function' ? callback.createDelegate(scope) : callback
- };
- transactions[t.tid] = t;
-
- form = Ext.getDom(form);
- var isUpload = String(form.getAttribute("enctype")).toLowerCase() == 'multipart/form-data';
-
- var params = {
- extTID: t.tid,
- extAction: c,
- extMethod: m.name,
- extUpload: String(isUpload)
- };
- if(callback && typeof callback == 'object'){
- Ext.apply(params, callback.params);
- }
- Ext.Ajax.request({
- url: d.remoteUrl,
- params: params,
- callback: cb,
- form: form,
- isUpload: isUpload,
- ts: {
- action: c,
- method: m.name,
- tid: t.tid,
- data: null
- }
- });
- }
-
- var createMethod = function(c, m){
- var f;
- if(!m.formHandler){
- f = function(){
- doCall(c, m, Array.prototype.slice.call(arguments, 0));
- };
- }else{
- f = function(form, callback, scope){
- doForm(c, m, form, callback, scope);
- };
- }
- f.directCfg = {
- action: c,
- method: m
- };
- return f;
- }
-
- var onProviderData = function(p, e){
- switch(e.format){
- case 'string':
- cb({}, true, {responseText: e.data});
- break;
- default:
- cb({}, true, e.data);
- }
- }
-
- var onProviderException = function(p, e){
- handleException({}, e.data, e.type);
- }
-
- impl = Ext.extend(Ext.util.Observable, {
- exceptions: {
- TRANSPORT: 'xhr',
- PARSE: 'parse',
- LOGIN: 'login',
- SERVER: 'exception'
- },
-
- constructor: function(){
- impl.superclass.constructor.call(this);
- this.addEvents('beforecall', 'call', 'beforeevent', 'event', 'exception');
- },
-
- defineAPI : function(data){
- d.remoteUrl = data.url;
- var o = data.actions || data.cls;
- for(var c in o){
- var cls = window[c] || (window[c] = {});
- var ms = o[c];
- for(var i = 0, len = ms.length; i < len; i++){
- var m = ms[i];
- cls[m.name] = createMethod(c, m);
- }
- }
- },
-
-
-
- inject : function(stringData, opt){
- cb(opt || {}, true, {responseText: stringData});
- },
-
- injectRaw : function(opt, success, xhr){
- cb(opt, success, xhr);
- },
-
- injectTransaction : function(callback){
- var t = {
- tid: ++TID,
- action: c,
- method: m,
- cb: callback
- };
- transactions[t.tid] = t;
- return t;
- },
-
-
-
- //autoReconnect: true,
- //pollInterval: 3000,
- //keepAliveInterval: 60000,
- //pollUrlFragment: '/poll',
- //pingUrlFragment: '/ping',
-
- addProvider : function(provider){
- if(!provider.events){
- provider = new d.PROVIDERS[provider.type](provider);
- }
- if(!provider.isConnected()){
- provider.connect();
- }
- provider.id = provider.id || Ext.id;
- providers[provider.id] = provider;
-
- provider.on('data', onProviderData);
- provider.on('exception', onProviderException);
-
- return provider;
- },
-
- getProvider : function(id){
- return providers[id];
- },
-
- removeProvider : function(id){
- var provider = id.id ? id : providers[id.id];
- provider.un('data', onProviderData);
- provider.un('exception', onProviderException);
- delete providers[provider.id];
- return provider;
- },
-
- enableBuffer: 10
- });
- Ext.Direct = d = new impl();
-
- d.PROVIDERS = {};
-
- var reconnId = 0;
- var retryId = 0;
-
- var clear = function(){
- clearTimeout(reconnId);
- clearTimeout(retryId);
- }
-
- d.Flash = {
- onData : function(strData){
- // setTimeout to avoid flash crash bug
- setTimeout(function(){
- d.inject(strData);
- }, 10);
- },
-
- onConnect : function(success){
- if(success){
- clear();
- d.stopPoll();
- d.fireEvent('connect');
- }else{
- d.startPoll();
- if(d.autoReconnect){
- d.Flash.reconnect();
- }
- }
- },
-
- getFlash : function(){
- return Ext.isIE ? window.xflashDirect : document.xflashDirect;
- },
-
- reconnect : function(){
- clear();
- var flash = d.Flash.getFlash();
- if(flash){
- reconnId = setTimeout(function(){
- flash.reconnect();
- }, 1000);
- retryId = setInterval(function(){
- flash.reconnect();
- }, 30000);
- }
- },
-
- onClose : function(){
- d.fireEvent('disconnect');
- d.startPoll();
- if(d.autoReconnect){
- d.Flash.reconnect();
- }
- }
- };
-})();
-
-Ext.data.DirectProvider = Ext.extend(Ext.util.Observable, {
- priority: 1, // lower is higher priority, 0 mens "duplex", aka always on
- constructor : function(config){
- Ext.apply(this, config);
- this.addEvents('connect', 'disconnect', 'data', 'exception');
- Ext.data.DirectProvider.superclass.constructor.apply(this, arguments);
- },
-
- isConnected: function(){
- return false;
- },
-
- connect: Ext.emptyFn,
- disconnect: Ext.emptyFn
-});
-
-Ext.data.PollingProvider = Ext.extend(Ext.data.DirectProvider, {
- priority: 3,
- interval: 3000,
-
- constructor : function(config){
- Ext.data.PollingProvider.superclass.constructor.apply(this, arguments);
- this.addEvents('beforepoll', 'poll');
- },
-
- isConnected: function(){
- return !!this.pollTask;
- },
-
- connect: function(){
- if(this.url && !this.pollTask){
- this.pollTask = Ext.TaskMgr.start({
- run: function(){
- if(this.fireEvent('beforepoll') !== false){
- Ext.Ajax.request({
- url: this.url,
- callback: this.onData,
- scope: this,
- params: this.baseParams
- });
- }
- },
- interval: this.interval,
- scope: this
- });
- this.fireEvent('connect', this);
- }else if(!this.url){
- throw 'Error initializing PollingProvider, no url configured.';
- }
- },
-
- disconnect: function(){
- if(this.pollTask){
- Ext.TaskMgr.stop(this.pollTask);
- delete this.pollTask;
- this.fireEvent('disconnect', this);
- }
- },
-
- onData: function(opt, success, xhr){
- if(success){
- this.fireEvent('data', this, {
- format: 'xhr',
- data: xhr
- });
- }else{
- this.fireEvent('exception', this, {
- format: 'xhr',
- data: xhr,
- type: Ext.Direct.exceptions.TRANSPORT
- });
- }
- }
-});
-
-Ext.Direct.PROVIDERS['poll'] = Ext.data.PollingProvider;
-
-
-
-
Ext.Updater = Ext.extend(Ext.util.Observable, {
constructor: function(el, forceNew){
el = Ext.get(el);
@@ -6403,6 +5917,18 @@
(function() {
+
+// create private copy of Ext's String.format() method
+// - to remove unnecessary dependency
+// - to resolve namespace conflict with M$-Ajax's implementation
+function xf(format) {
+ var args = Array.prototype.slice.call(arguments, 1);
+ return format.replace(/\{(\d+)\}/g, function(m, i) {
+ return args[i];
+ });
+}
+
+
// private
Date.formatCodeToRegex = function(character, currentGroup) {
// Note: currentGroup - position in regex result array (see notes for Date.parseCodes below)
@@ -6414,7 +5940,7 @@
}
return p? Ext.applyIf({
- c: p.c? String.format(p.c, currentGroup || "{0}") : p.c
+ c: p.c? xf(p.c, currentGroup || "{0}") : p.c
}, p) : {
g:0,
c:null,
@@ -6606,48 +6132,19 @@
},
// private
- createParser : function(format) {
- var funcName = "parse" + Date.parseFunctions.count++,
- regexNum = Date.parseRegexes.length,
- currentGroup = 1,
- code = [
- "Date." + funcName + " = function(input){",
- "var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;",
- "input = String(input);",
- "d = new Date();",
- "y = d.getFullYear();",
- "m = d.getMonth();",
- "d = d.getDate();",
- "var results = input.match(Date.parseRegexes[" + regexNum + "]);",
- "if (results && results.length > 0) {\n"
- ].join('\n'),
- regex = "",
- special = false,
- ch = '';
-
- Date.parseFunctions[format] = funcName;
-
- for (var i = 0; i < format.length; ++i) {
- ch = format.charAt(i);
- if (!special && ch == "\\") {
- special = true;
- }
- else if (special) {
- special = false;
- regex += String.escape(ch);
- }
- else {
- var obj = Date.formatCodeToRegex(ch, currentGroup);
- currentGroup += obj.g;
- regex += obj.s;
- if (obj.g && obj.c) {
- code += obj.c;
- }
- }
- }
-
- code += [
- "if (u){",
+ createParser : function() {
+ var code = [
+ "Date.{0} = function(input){",
+ "var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;",
+ "input = String(input);",
+ "d = new Date();",
+ "y = d.getFullYear();",
+ "m = d.getMonth();",
+ "d = d.getDate();",
+ "var results = input.match(Date.parseRegexes[{1}]);",
+ "if(results && results.length > 0){",
+ "{2}",
+ "if(u){",
"v = new Date(u * 1000);", // give top priority to UNIX time
"}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){",
"v = new Date(y, m, d, h, i, s, ms);",
@@ -6671,10 +6168,41 @@
"}"
].join('\n');
- Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$", "i");
- eval(code);
- },
+ return function(format) {
+ var funcName = "parse" + Date.parseFunctions.count++,
+ regexNum = Date.parseRegexes.length,
+ currentGroup = 1,
+ calc = "",
+ regex = "",
+ special = false,
+ ch = "";
+ Date.parseFunctions[format] = funcName;
+
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ regex += String.escape(ch);
+ }
+ else {
+ var obj = $f(ch, currentGroup);
+ currentGroup += obj.g;
+ regex += obj.s;
+ if (obj.g && obj.c) {
+ calc += obj.c;
+ }
+ }
+ }
+
+ Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$", "i");
+ eval(xf(code, funcName, regexNum, calc));
+ }
+ }(),
+
// private
parseCodes : {
@@ -6721,7 +6249,7 @@
z: {
g:0,
c:null,
- s:"(?:\\d{1,3}" // day of the year (0 - 364 (365 in leap years))
+ s:"(?:\\d{1,3})" // day of the year (0 - 364 (365 in leap years))
},
W: {
g:0,
@@ -6944,7 +6472,7 @@
// adapted from http://www.merlyn.demon.co.uk/weekcalc.htm
var ms1d = 864e5, // milliseconds in a day
ms7d = 7 * ms1d; // milliseconds in a week
-
+
return function() { // return a closure so constants get calculated only once
var DC3 = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate() + 3) / ms1d, // an Absolute Day Number
AWN = Math.floor(DC3 / 7), // an Absolute Week Number
@@ -12163,14 +11691,6 @@
Ext.extend(Ext.data.XmlStore, Ext.data.Store);
Ext.reg('xmlstore', Ext.data.XmlStore);
-Ext.data.DirectStore = function(c){
- var pcfg = Ext.copyTo({}, c, 'paramOrder,paramsAsHash,directFn');
- Ext.data.DirectStore.superclass.constructor.call(this, Ext.apply(c, {
- proxy: new Ext.data.DirectProxy(pcfg),
- reader: new Ext.data.JsonReader(c, c.fields)
- }));
-};
-Ext.extend(Ext.data.DirectStore, Ext.data.Store);
// private
// Field objects are not intended to be created directly, but are created
// behind the scenes when defined for Record objects. See Record.js for details.
@@ -12520,58 +12040,6 @@
trans.callback.call(trans.scope||window, null, trans.arg, false);
}
});
-Ext.data.DirectProxy = function(config){
- Ext.apply(this, config);
- if(typeof this.paramOrder == 'string'){
- this.paramOrder = this.paramOrder.split(/[\s,|]/);
- }
- Ext.data.DirectProxy.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.data.DirectProxy, Ext.data.DataProxy, {
-
- paramOrder: undefined,
- paramsAsHash: true,
- directFn: undefined,
-
- load: function(params, reader, cb, scope, arg){
- if(this.fireEvent("beforeload", this, params) !== false) {
- var args = [];
- if(this.paramOrder){
- for(var i = 0, len = this.paramOrder.length; i < len; i++){
- args.push(params[this.paramOrder[i]]);
- }
- }else if(this.paramsAsHash){
- args.push(params);
- }
- args.push({
- callback: function(result, e){
- if(!e.success){
- this.fireEvent("loadexception", this, e, result);
- cb.call(scope, null, arg, false);
- return;
- }
- var rs;
- try {
- rs = reader.readRecords(result);
- }catch(ex){
- this.fireEvent("loadexception", this, e, result, ex);
- cb.call(scope, null, arg, false);
- return;
- }
- this.fireEvent("load", this, e, arg);
- cb.call(scope, rs, arg, true);
- },
-
- scope: this
- });
-
- this.directFn.apply(window, args);
- } else {
- cb.call(scope || this, null, arg, false);
- }
- }
-});
Ext.data.JsonReader = function(meta, recordType){
meta = meta || {};
@@ -12793,7 +12261,557 @@
};
}
});
+Ext.Direct = Ext.extend(Ext.util.Observable, {
+ exceptions: {
+ TRANSPORT: 'xhr',
+ PARSE: 'parse',
+ LOGIN: 'login',
+ SERVER: 'exception'
+ },
+ constructor: function(){
+ this.addEvents('event', 'exception');
+ this.transactions = {};
+ this.providers = {};
+ },
+
+ addProvider : function(provider){
+ var a = arguments;
+ if(a.length > 1){
+ for(var i = 0, len = a.length; i < len; i++){
+ this.addProvider(a[i]);
+ }
+ return;
+ }
+ if(!provider.events){
+ provider = new Ext.Direct.PROVIDERS[provider.type](provider);
+ //provider = new Ext.Direct.PROVIDERS[provider.type](provider);
+ }
+ provider.id = provider.id || Ext.id;
+ this.providers[provider.id] = provider;
+
+ provider.on('data', this.onProviderData, this);
+ provider.on('exception', this.onProviderException, this);
+
+ if(!provider.isConnected()){
+ provider.connect();
+ }
+
+ return provider;
+ },
+
+ getProvider : function(id){
+ return this.providers[id];
+ },
+
+ removeProvider : function(id){
+ var provider = id.id ? id : providers[id.id];
+ provider.un('data', this.onProviderData, this);
+ provider.un('exception', this.onProviderException, this);
+ delete this.providers[provider.id];
+ return provider;
+ },
+
+ addTransaction: function(t){
+ this.transactions[t.tid] = t;
+ return t;
+ },
+
+ removeTransaction: function(t){
+ delete this.transactions[t.tid || t];
+ return t;
+ },
+
+ getTransaction: function(tid){
+ return this.transactions[tid.tid || tid];
+ },
+
+ onProviderData : function(provider, e){
+ if(Ext.isArray(e)){
+ for(var i = 0, len = e.length; i < len; i++){
+ this.onProviderData(provider, e[i]);
+ }
+ return;
+ }
+ if(e.name && e.name != 'event' && e.name != 'exception'){
+ this.fireEvent(e.name, e);
+ }else if(e.type == 'exception'){
+ this.fireEvent('exception', e);
+ }
+ this.fireEvent('event', e, provider);
+ },
+
+ createEvent : function(response, extraProps){
+ return new Ext.Direct.eventTypes[response.type](Ext.apply(response, extraProps));
+ }
+});
+Ext.Direct = new Ext.Direct();
+
+Ext.Direct.TID = 1;
+Ext.Direct.PROVIDERS = {};
+Ext.Direct.Transaction = function(config){
+ Ext.apply(this, config);
+ this.tid = ++Ext.Direct.TID;
+ this.retryCount = 0;
+}
+Ext.Direct.Transaction.prototype = {
+ send: function(){
+ this.provider.queueTransaction(this);
+ },
+
+ retry: function(){
+ this.retryCount++;
+ this.send();
+ },
+
+ getProvider: function(){
+ return this.provider;
+ }
+};
+Ext.Direct.Event = function(config){
+ Ext.apply(this, config);
+}
+Ext.Direct.Event.prototype = {
+ status: true,
+ getData: function(){
+ return this.data;
+ }
+};
+
+Ext.Direct.RemotingEvent = Ext.extend(Ext.Direct.Event, {
+ type: 'rpc',
+ getTransaction: function(){
+ return this.transaction || Ext.Direct.getTransaction(this.tid);
+ }
+});
+
+Ext.Direct.ExceptionEvent = Ext.extend(Ext.Direct.RemotingEvent, {
+ status: false,
+ type: 'exception'
+});
+
+Ext.Direct.eventTypes = {
+ 'rpc': Ext.Direct.RemotingEvent,
+ 'event': Ext.Direct.Event,
+ 'exception': Ext.Direct.ExceptionEvent
+};
+
+
+Ext.direct.Provider = Ext.extend(Ext.util.Observable, {
+ priority: 1, // lower is higher priority, 0 mens "duplex", aka always on
+ constructor : function(config){
+ Ext.apply(this, config);
+ this.addEvents('connect', 'disconnect', 'data', 'exception');
+ Ext.direct.Provider.superclass.constructor.call(this, config);
+ },
+
+ isConnected: function(){
+ return false;
+ },
+
+ connect: Ext.emptyFn,
+ disconnect: Ext.emptyFn
+});
+
+Ext.direct.JsonProvider = Ext.extend(Ext.direct.Provider, {
+ parseResponse: function(xhr){
+ if(!Ext.isEmpty(xhr.responseText)){
+ if(typeof xhr.responseText == 'object'){
+ return xhr.responseText;
+ }
+ return Ext.decode(xhr.responseText);
+ }
+ return null;
+ },
+
+ getEvents: function(xhr){
+ var data = null;
+ try{
+ data = this.parseResponse(xhr);
+ }catch(e){
+ var event = new Ext.Direct.ExceptionEvent({
+ data: e,
+ xhr: xhr,
+ code: Ext.Direct.exceptions.PARSE,
+ message: 'Error parsing json response: \n\n ' + data
+ })
+ return [event];
+ }
+ var events = [];
+ if(Ext.isArray(data)){
+ for(var i = 0, len = data.length; i < len; i++){
+ events.push(Ext.Direct.createEvent(data[i]));
+ }
+ }else{
+ events.push(Ext.Direct.createEvent(data));
+ }
+ return events;
+ }
+});
+Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, {
+ priority: 3,
+ interval: 3000,
+
+ constructor : function(config){
+ Ext.direct.PollingProvider.superclass.constructor.call(this, config);
+ this.addEvents('beforepoll', 'poll');
+ },
+
+ isConnected: function(){
+ return !!this.pollTask;
+ },
+
+ connect: function(){
+ if(this.url && !this.pollTask){
+ this.pollTask = Ext.TaskMgr.start({
+ run: function(){
+ if(this.fireEvent('beforepoll', this) !== false){
+ if(typeof this.url == 'function'){
+ this.url(this.baseParams);
+ }else{
+ Ext.Ajax.request({
+ url: this.url,
+ callback: this.onData,
+ scope: this,
+ params: this.baseParams
+ });
+ }
+ }
+ },
+ interval: this.interval,
+ scope: this
+ });
+ this.fireEvent('connect', this);
+ }else if(!this.url){
+ throw 'Error initializing PollingProvider, no url configured.';
+ }
+ },
+
+ disconnect: function(){
+ if(this.pollTask){
+ Ext.TaskMgr.stop(this.pollTask);
+ delete this.pollTask;
+ this.fireEvent('disconnect', this);
+ }
+ },
+
+ onData: function(opt, success, xhr){
+ if(success){
+ var events = this.getEvents(xhr);
+ for(var i = 0, len = events.length; i < len; i++){
+ var e = events[i];
+ this.fireEvent('data', this, e);
+ }
+ }else{
+ var e = new Ext.Direct.ExceptionEvent({
+ data: e,
+ code: Ext.Direct.exceptions.TRANSPORT,
+ message: 'Unable to connect to the server.',
+ xhr: xhr
+ });
+ this.fireEvent('data', this, e);
+ }
+ }
+});
+
+Ext.Direct.PROVIDERS['polling'] = Ext.direct.PollingProvider;
+Ext.direct.RemotingProvider = Ext.extend(Ext.direct.JsonProvider, {
+ priority: 1,
+ enableBuffer: 10,
+ maxRetries: 1,
+
+ constructor : function(config){
+ Ext.direct.RemotingProvider.superclass.constructor.call(this, config);
+ this.addEvents('beforecall', 'call');
+ this.namespace = this.namespace || window;
+ this.transactions = {};
+ this.callBuffer = [];
+ },
+
+ initAPI : function(){
+ var o = this.actions;
+ for(var c in o){
+ var cls = this.namespace[c] || (this.namespace[c] = {});
+ var ms = o[c];
+ for(var i = 0, len = ms.length; i < len; i++){
+ var m = ms[i];
+ cls[m.name] = this.createMethod(c, m);
+ }
+ }
+ },
+
+ isConnected: function(){
+ return !!this.connected;
+ },
+
+ connect: function(){
+ if(this.url){
+ this.initAPI();
+ this.connected = true;
+ this.fireEvent('connect', this);
+ }else if(!this.url){
+ throw 'Error initializing RemotingProvider, no url configured.';
+ }
+ },
+
+ disconnect: function(){
+ if(this.connected){
+ this.connected = false;
+ this.fireEvent('disconnect', this);
+ }
+ },
+
+ onData: function(opt, success, xhr){
+ if(success){
+ var events = this.getEvents(xhr);
+ for(var i = 0, len = events.length; i < len; i++){
+ var e = events[i];
+ var t = e.getTransaction();
+ this.fireEvent('data', this, e);
+ if(t){
+ this.doCallback(t, e, true);
+ Ext.Direct.removeTransaction(t);
+ }
+ }
+ }else{
+ var ts = [].concat(opt.ts);
+ for(var i = 0, len = ts.length; i < len; i++){
+ var t = this.getTransaction(opt.ts[i]);
+ if(t && t.retryCount < this.maxRetries){
+ t.retry();
+ }else{
+ var e = new Ext.Direct.ExceptionEvent({
+ data: e,
+ transaction: t,
+ code: Ext.Direct.exceptions.TRANSPORT,
+ message: 'Unable to connect to the server.',
+ xhr: xhr
+ });
+ this.fireEvent('data', this, e);
+ if(t){
+ this.doCallback(t, e, false);
+ Ext.Direct.removeTransaction(t);
+ }
+ }
+ }
+ }
+ },
+
+ getCallData: function(t){
+ return {
+ action: t.action,
+ method: t.method,
+ data: t.data,
+ type: 'rpc',
+ tid: t.tid
+ };
+ },
+
+ doSend : function(data){
+ var o = {
+ url: this.url,
+ callback: this.onData,
+ scope: this
+ };
+
+ // send only needed data
+ var callData;
+ if(Ext.isArray(data)){
+ callData = [];
+ for(var i = 0, len = data.length; i < len; i++){
+ callData.push(this.getCallData(data[i]));
+ }
+ }else{
+ callData = this.getCallData(data);
+ }
+
+ if(this.enableUrlEncode){
+ var params = {};
+ params[typeof this.enableUrlEncode == 'string' ? this.enableUrlEncode : 'data'] = Ext.encode(callData);
+ o.params = params;
+ }else{
+ o.jsonData = callData;
+ }
+ Ext.Ajax.request(o);
+ },
+
+ combineAndSend : function(){
+ var len = this.callBuffer.length;
+ if(len > 0){
+ this.doSend(len == 1 ? this.callBuffer[0] : this.callBuffer);
+ this.callBuffer = [];
+ }
+ },
+
+ queueTransaction: function(t){
+ this.callBuffer.push(t);
+ if(this.enableBuffer){
+ if(!this.callTask){
+ this.callTask = new Ext.util.DelayedTask(this.combineAndSend, this);
+ }
+ this.callTask.delay(typeof this.enableBuffer == 'number' ? this.enableBuffer : 10);
+ }else{
+ this.combineAndSend();
+ }
+ },
+
+ doCall : function(c, m, args){
+ var data = null, hs = args[m.len], scope = args[m.len+1];
+
+ if(m.len !== 0){
+ data = args.slice(0, m.len);
+ }
+
+ var t = new Ext.Direct.Transaction({
+ provider: this,
+ args: args,
+ action: c,
+ method: m.name,
+ data: data,
+ cb: scope && typeof hs == 'function' ? hs.createDelegate(scope) : hs
+ });
+
+ if(this.fireEvent('beforecall', this, t) !== false){
+ Ext.Direct.addTransaction(t);
+ this.queueTransaction(t);
+ this.fireEvent('call', this, t);
+ }
+ },
+
+ doForm : function(c, m, form, callback, scope){
+ var t = new Ext.Direct.Transaction({
+ provider: this,
+ action: c,
+ method: m.name,
+ args:[form, callback, scope],
+ cb: scope && typeof callback == 'function' ? callback.createDelegate(scope) : callback
+ });
+
+ if(this.fireEvent('beforecall', this, t) !== false){
+ Ext.Direct.addTransaction(t);
+
+ form = Ext.getDom(form);
+ var isUpload = String(form.getAttribute("enctype")).toLowerCase() == 'multipart/form-data';
+
+ var params = {
+ extTID: t.tid,
+ extAction: c,
+ extMethod: m.name,
+ extUpload: String(isUpload)
+ };
+ if(callback && typeof callback == 'object'){
+ Ext.apply(params, callback.params);
+ }
+ Ext.Ajax.request({
+ url: this.url,
+ params: params,
+ callback: this.onData,
+ scope: this,
+ form: form,
+ isUpload: isUpload,
+ ts: t
+ });
+ }
+ },
+
+ createMethod : function(c, m){
+ var f;
+ if(!m.formHandler){
+ f = function(){
+ this.doCall(c, m, Array.prototype.slice.call(arguments, 0));
+ }.createDelegate(this);
+ }else{
+ f = function(form, callback, scope){
+ this.doForm(c, m, form, callback, scope);
+ }.createDelegate(this);
+ }
+ f.directCfg = {
+ action: c,
+ method: m
+ };
+ return f;
+ },
+
+ getTransaction: function(opt){
+ return opt && opt.tid ? Ext.Direct.getTransaction(opt.tid) : null;
+ },
+
+ doCallback: function(t, e){
+ var fn = e.status ? 'success' : 'failure';
+ if(t && t.cb){
+ var hs = t.cb;
+ var result = e.result || e.data;
+ if(typeof hs == 'function'){
+ hs(result, e);
+ } else{
+ Ext.callback(hs[fn], hs.scope, [result, e]);
+ Ext.callback(hs.callback, hs.scope, [result, e]);
+ }
+ }
+ }
+});
+Ext.Direct.PROVIDERS['remoting'] = Ext.direct.RemotingProvider;
+Ext.data.DirectProxy = function(config){
+ Ext.apply(this, config);
+ if(typeof this.paramOrder == 'string'){
+ this.paramOrder = this.paramOrder.split(/[\s,|]/);
+ }
+ Ext.data.DirectProxy.superclass.constructor.call(this);
+};
+
+Ext.extend(Ext.data.DirectProxy, Ext.data.DataProxy, {
+
+ paramOrder: undefined,
+ paramsAsHash: true,
+ directFn: undefined,
+
+ load: function(params, reader, cb, scope, arg){
+ if(this.fireEvent("beforeload", this, params) !== false) {
+ var args = [];
+ if(this.paramOrder){
+ for(var i = 0, len = this.paramOrder.length; i < len; i++){
+ args.push(params[this.paramOrder[i]]);
+ }
+ }else if(this.paramsAsHash){
+ args.push(params);
+ }
+ args.push({
+ callback: function(result, e){
+ if(!e.status){
+ this.fireEvent("loadexception", this, e, result);
+ cb.call(scope, null, arg, false);
+ return;
+ }
+ var rs;
+ try {
+ rs = reader.readRecords(result);
+ }catch(ex){
+ this.fireEvent("loadexception", this, e, result, ex);
+ cb.call(scope, null, arg, false);
+ return;
+ }
+ this.fireEvent("load", this, e, arg);
+ cb.call(scope, rs, arg, true);
+ },
+
+ scope: this
+ });
+
+ this.directFn.apply(window, args);
+ } else {
+ cb.call(scope || this, null, arg, false);
+ }
+ }
+});
+Ext.data.DirectStore = function(c){
+ var pcfg = Ext.copyTo({}, c, 'paramOrder,paramsAsHash,directFn');
+ Ext.data.DirectStore.superclass.constructor.call(this, Ext.apply(c, {
+ proxy: new Ext.data.DirectProxy(pcfg),
+ reader: new Ext.data.JsonReader(c, c.fields)
+ }));
+};
+Ext.extend(Ext.data.DirectStore, Ext.data.Store);
+
Ext.data.Tree = function(root){
this.nodeHash = {};
@@ -14088,428 +14106,428 @@
this.initialConfig.handler.apply(this.initialConfig.scope || window, arguments);
}
};
-
-(function(){
-Ext.Layer = function(config, existingEl){
- config = config || {};
- var dh = Ext.DomHelper;
- var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body;
- if(existingEl){
- this.dom = Ext.getDom(existingEl);
- }
- if(!this.dom){
- var o = config.dh || {tag: "div", cls: "x-layer"};
- this.dom = dh.append(pel, o);
- }
- if(config.cls){
- this.addClass(config.cls);
- }
- this.constrain = config.constrain !== false;
- this.visibilityMode = Ext.Element.VISIBILITY;
- if(config.id){
- this.id = this.dom.id = config.id;
- }else{
- this.id = Ext.id(this.dom);
- }
- this.zindex = config.zindex || this.getZIndex();
- this.position("absolute", this.zindex);
- if(config.shadow){
- this.shadowOffset = config.shadowOffset || 4;
- this.shadow = new Ext.Shadow({
- offset : this.shadowOffset,
- mode : config.shadow
- });
- }else{
- this.shadowOffset = 0;
- }
- this.useShim = config.shim !== false && Ext.useShims;
- this.useDisplay = config.useDisplay;
- this.hide();
-};
-
-var supr = Ext.Element.prototype;
-
-// shims are shared among layer to keep from having 100 iframes
-var shims = [];
-
-Ext.extend(Ext.Layer, Ext.Element, {
-
- getZIndex : function(){
- return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000;
- },
-
- getShim : function(){
- if(!this.useShim){
- return null;
- }
- if(this.shim){
- return this.shim;
- }
- var shim = shims.shift();
- if(!shim){
- shim = this.createShim();
- shim.enableDisplayMode('block');
- shim.dom.style.display = 'none';
- shim.dom.style.visibility = 'visible';
- }
- var pn = this.dom.parentNode;
- if(shim.dom.parentNode != pn){
- pn.insertBefore(shim.dom, this.dom);
- }
- shim.setStyle('z-index', this.getZIndex()-2);
- this.shim = shim;
- return shim;
- },
-
- hideShim : function(){
- if(this.shim){
- this.shim.setDisplayed(false);
- shims.push(this.shim);
- delete this.shim;
- }
- },
-
- disableShadow : function(){
- if(this.shadow){
- this.shadowDisabled = true;
- this.shadow.hide();
- this.lastShadowOffset = this.shadowOffset;
- this.shadowOffset = 0;
- }
- },
-
- enableShadow : function(show){
- if(this.shadow){
- this.shadowDisabled = false;
- this.shadowOffset = this.lastShadowOffset;
- delete this.lastShadowOffset;
- if(show){
- this.sync(true);
- }
- }
- },
-
- // private
- // this code can execute repeatedly in milliseconds (i.e. during a drag) so
- // code size was sacrificed for effeciency (e.g. no getBox/setBox, no XY calls)
- sync : function(doShow){
- var sw = this.shadow;
- if(!this.updating && this.isVisible() && (sw || this.useShim)){
- var sh = this.getShim();
-
- var w = this.getWidth(),
- h = this.getHeight();
-
- var l = this.getLeft(true),
- t = this.getTop(true);
-
- if(sw && !this.shadowDisabled){
- if(doShow && !sw.isVisible()){
- sw.show(this);
- }else{
- sw.realign(l, t, w, h);
- }
- if(sh){
- if(doShow){
- sh.show();
- }
- // fit the shim behind the shadow, so it is shimmed too
- var a = sw.adjusts, s = sh.dom.style;
- s.left = (Math.min(l, l+a.l))+"px";
- s.top = (Math.min(t, t+a.t))+"px";
- s.width = (w+a.w)+"px";
- s.height = (h+a.h)+"px";
- }
- }else if(sh){
- if(doShow){
- sh.show();
- }
- sh.setSize(w, h);
- sh.setLeftTop(l, t);
- }
-
- }
- },
-
- // private
- destroy : function(){
- this.hideShim();
- if(this.shadow){
- this.shadow.hide();
- }
- this.removeAllListeners();
- Ext.removeNode(this.dom);
- Ext.Element.uncache(this.id);
- },
-
- remove : function(){
- this.destroy();
- },
-
- // private
- beginUpdate : function(){
- this.updating = true;
- },
-
- // private
- endUpdate : function(){
- this.updating = false;
- this.sync(true);
- },
-
- // private
- hideUnders : function(negOffset){
- if(this.shadow){
- this.shadow.hide();
- }
- this.hideShim();
- },
-
- // private
- constrainXY : function(){
- if(this.constrain){
- var vw = Ext.lib.Dom.getViewWidth(),
- vh = Ext.lib.Dom.getViewHeight();
- var s = Ext.getDoc().getScroll();
-
- var xy = this.getXY();
- var x = xy[0], y = xy[1];
- var so = this.shadowOffset;
- var w = this.dom.offsetWidth+so, h = this.dom.offsetHeight+so;
- // only move it if it needs it
- var moved = false;
- // first validate right/bottom
- if((x + w) > vw+s.left){
- x = vw - w - so;
- moved = true;
- }
- if((y + h) > vh+s.top){
- y = vh - h - so;
- moved = true;
- }
- // then make sure top/left isn't negative
- if(x < s.left){
- x = s.left;
- moved = true;
- }
- if(y < s.top){
- y = s.top;
- moved = true;
- }
- if(moved){
- if(this.avoidY){
- var ay = this.avoidY;
- if(y <= ay && (y+h) >= ay){
- y = ay-h-5;
- }
- }
- xy = [x, y];
- this.storeXY(xy);
- supr.setXY.call(this, xy);
- this.sync();
- }
- }
- },
-
- isVisible : function(){
- return this.visible;
- },
-
- // private
- showAction : function(){
- this.visible = true; // track visibility to prevent getStyle calls
- if(this.useDisplay === true){
- this.setDisplayed("");
- }else if(this.lastXY){
- supr.setXY.call(this, this.lastXY);
- }else if(this.lastLT){
- supr.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]);
- }
- },
-
- // private
- hideAction : function(){
- this.visible = false;
- if(this.useDisplay === true){
- this.setDisplayed(false);
- }else{
- this.setLeftTop(-10000,-10000);
- }
- },
-
- // overridden Element method
- setVisible : function(v, a, d, c, e){
- if(v){
- this.showAction();
- }
- if(a && v){
- var cb = function(){
- this.sync(true);
- if(c){
- c();
- }
- }.createDelegate(this);
- supr.setVisible.call(this, true, true, d, cb, e);
- }else{
- if(!v){
- this.hideUnders(true);
- }
- var cb = c;
- if(a){
- cb = function(){
- this.hideAction();
- if(c){
- c();
- }
- }.createDelegate(this);
- }
- supr.setVisible.call(this, v, a, d, cb, e);
- if(v){
- this.sync(true);
- }else if(!a){
- this.hideAction();
- }
- }
- },
-
- storeXY : function(xy){
- delete this.lastLT;
- this.lastXY = xy;
- },
-
- storeLeftTop : function(left, top){
- delete this.lastXY;
- this.lastLT = [left, top];
- },
-
- // private
- beforeFx : function(){
- this.beforeAction();
- return Ext.Layer.superclass.beforeFx.apply(this, arguments);
- },
-
- // private
- afterFx : function(){
- Ext.Layer.superclass.afterFx.apply(this, arguments);
- this.sync(this.isVisible());
- },
-
- // private
- beforeAction : function(){
- if(!this.updating && this.shadow){
- this.shadow.hide();
- }
- },
-
- // overridden Element method
- setLeft : function(left){
- this.storeLeftTop(left, this.getTop(true));
- supr.setLeft.apply(this, arguments);
- this.sync();
- },
-
- setTop : function(top){
- this.storeLeftTop(this.getLeft(true), top);
- supr.setTop.apply(this, arguments);
- this.sync();
- },
-
- setLeftTop : function(left, top){
- this.storeLeftTop(left, top);
- supr.setLeftTop.apply(this, arguments);
- this.sync();
- },
-
- setXY : function(xy, a, d, c, e){
- this.fixDisplay();
- this.beforeAction();
- this.storeXY(xy);
- var cb = this.createCB(c);
- supr.setXY.call(this, xy, a, d, cb, e);
- if(!a){
- cb();
- }
- },
-
- // private
- createCB : function(c){
- var el = this;
- return function(){
- el.constrainXY();
- el.sync(true);
- if(c){
- c();
- }
- };
- },
-
- // overridden Element method
- setX : function(x, a, d, c, e){
- this.setXY([x, this.getY()], a, d, c, e);
- },
-
- // overridden Element method
- setY : function(y, a, d, c, e){
- this.setXY([this.getX(), y], a, d, c, e);
- },
-
- // overridden Element method
- setSize : function(w, h, a, d, c, e){
- this.beforeAction();
- var cb = this.createCB(c);
- supr.setSize.call(this, w, h, a, d, cb, e);
- if(!a){
- cb();
- }
- },
-
- // overridden Element method
- setWidth : function(w, a, d, c, e){
- this.beforeAction();
- var cb = this.createCB(c);
- supr.setWidth.call(this, w, a, d, cb, e);
- if(!a){
- cb();
- }
- },
-
- // overridden Element method
- setHeight : function(h, a, d, c, e){
- this.beforeAction();
- var cb = this.createCB(c);
- supr.setHeight.call(this, h, a, d, cb, e);
- if(!a){
- cb();
- }
- },
-
- // overridden Element method
- setBounds : function(x, y, w, h, a, d, c, e){
- this.beforeAction();
- var cb = this.createCB(c);
- if(!a){
- this.storeXY([x, y]);
- supr.setXY.call(this, [x, y]);
- supr.setSize.call(this, w, h, a, d, cb, e);
- cb();
- }else{
- supr.setBounds.call(this, x, y, w, h, a, d, cb, e);
- }
- return this;
- },
-
-
- setZIndex : function(zindex){
- this.zindex = zindex;
- this.setStyle("z-index", zindex + 2);
- if(this.shadow){
- this.shadow.setZIndex(zindex + 1);
- }
- if(this.shim){
- this.shim.setStyle("z-index", zindex);
- }
- }
-});
+
+(function(){
+Ext.Layer = function(config, existingEl){
+ config = config || {};
+ var dh = Ext.DomHelper;
+ var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body;
+ if(existingEl){
+ this.dom = Ext.getDom(existingEl);
+ }
+ if(!this.dom){
+ var o = config.dh || {tag: "div", cls: "x-layer"};
+ this.dom = dh.append(pel, o);
+ }
+ if(config.cls){
+ this.addClass(config.cls);
+ }
+ this.constrain = config.constrain !== false;
+ this.visibilityMode = Ext.Element.VISIBILITY;
+ if(config.id){
+ this.id = this.dom.id = config.id;
+ }else{
+ this.id = Ext.id(this.dom);
+ }
+ this.zindex = config.zindex || this.getZIndex();
+ this.position("absolute", this.zindex);
+ if(config.shadow){
+ this.shadowOffset = config.shadowOffset || 4;
+ this.shadow = new Ext.Shadow({
+ offset : this.shadowOffset,
+ mode : config.shadow
+ });
+ }else{
+ this.shadowOffset = 0;
+ }
+ this.useShim = config.shim !== false && Ext.useShims;
+ this.useDisplay = config.useDisplay;
+ this.hide();
+};
+
+var supr = Ext.Element.prototype;
+
+// shims are shared among layer to keep from having 100 iframes
+var shims = [];
+
+Ext.extend(Ext.Layer, Ext.Element, {
+
+ getZIndex : function(){
+ return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000;
+ },
+
+ getShim : function(){
+ if(!this.useShim){
+ return null;
+ }
+ if(this.shim){
+ return this.shim;
+ }
+ var shim = shims.shift();
+ if(!shim){
+ shim = this.createShim();
+ shim.enableDisplayMode('block');
+ shim.dom.style.display = 'none';
+ shim.dom.style.visibility = 'visible';
+ }
+ var pn = this.dom.parentNode;
+ if(shim.dom.parentNode != pn){
+ pn.insertBefore(shim.dom, this.dom);
+ }
+ shim.setStyle('z-index', this.getZIndex()-2);
+ this.shim = shim;
+ return shim;
+ },
+
+ hideShim : function(){
+ if(this.shim){
+ this.shim.setDisplayed(false);
+ shims.push(this.shim);
+ delete this.shim;
+ }
+ },
+
+ disableShadow : function(){
+ if(this.shadow){
+ this.shadowDisabled = true;
+ this.shadow.hide();
+ this.lastShadowOffset = this.shadowOffset;
+ this.shadowOffset = 0;
+ }
+ },
+
+ enableShadow : function(show){
+ if(this.shadow){
+ this.shadowDisabled = false;
+ this.shadowOffset = this.lastShadowOffset;
+ delete this.lastShadowOffset;
+ if(show){
+ this.sync(true);
+ }
+ }
+ },
+
+ // private
+ // this code can execute repeatedly in milliseconds (i.e. during a drag) so
+ // code size was sacrificed for effeciency (e.g. no getBox/setBox, no XY calls)
+ sync : function(doShow){
+ var sw = this.shadow;
+ if(!this.updating && this.isVisible() && (sw || this.useShim)){
+ var sh = this.getShim();
+
+ var w = this.getWidth(),
+ h = this.getHeight();
+
+ var l = this.getLeft(true),
+ t = this.getTop(true);
+
+ if(sw && !this.shadowDisabled){
+ if(doShow && !sw.isVisible()){
+ sw.show(this);
+ }else{
+ sw.realign(l, t, w, h);
+ }
+ if(sh){
+ if(doShow){
+ sh.show();
+ }
+ // fit the shim behind the shadow, so it is shimmed too
+ var a = sw.adjusts, s = sh.dom.style;
+ s.left = (Math.min(l, l+a.l))+"px";
+ s.top = (Math.min(t, t+a.t))+"px";
+ s.width = (w+a.w)+"px";
+ s.height = (h+a.h)+"px";
+ }
+ }else if(sh){
+ if(doShow){
+ sh.show();
+ }
+ sh.setSize(w, h);
+ sh.setLeftTop(l, t);
+ }
+
+ }
+ },
+
+ // private
+ destroy : function(){
+ this.hideShim();
+ if(this.shadow){
+ this.shadow.hide();
+ }
+ this.removeAllListeners();
+ Ext.removeNode(this.dom);
+ Ext.Element.uncache(this.id);
+ },
+
+ remove : function(){
+ this.destroy();
+ },
+
+ // private
+ beginUpdate : function(){
+ this.updating = true;
+ },
+
+ // private
+ endUpdate : function(){
+ this.updating = false;
+ this.sync(true);
+ },
+
+ // private
+ hideUnders : function(negOffset){
+ if(this.shadow){
+ this.shadow.hide();
+ }
+ this.hideShim();
+ },
+
+ // private
+ constrainXY : function(){
+ if(this.constrain){
+ var vw = Ext.lib.Dom.getViewWidth(),
+ vh = Ext.lib.Dom.getViewHeight();
+ var s = Ext.getDoc().getScroll();
+
+ var xy = this.getXY();
+ var x = xy[0], y = xy[1];
+ var so = this.shadowOffset;
+ var w = this.dom.offsetWidth+so, h = this.dom.offsetHeight+so;
+ // only move it if it needs it
+ var moved = false;
+ // first validate right/bottom
+ if((x + w) > vw+s.left){
+ x = vw - w - so;
+ moved = true;
+ }
+ if((y + h) > vh+s.top){
+ y = vh - h - so;
+ moved = true;
+ }
+ // then make sure top/left isn't negative
+ if(x < s.left){
+ x = s.left;
+ moved = true;
+ }
+ if(y < s.top){
+ y = s.top;
+ moved = true;
+ }
+ if(moved){
+ if(this.avoidY){
+ var ay = this.avoidY;
+ if(y <= ay && (y+h) >= ay){
+ y = ay-h-5;
+ }
+ }
+ xy = [x, y];
+ this.storeXY(xy);
+ supr.setXY.call(this, xy);
+ this.sync();
+ }
+ }
+ },
+
+ isVisible : function(){
+ return this.visible;
+ },
+
+ // private
+ showAction : function(){
+ this.visible = true; // track visibility to prevent getStyle calls
+ if(this.useDisplay === true){
+ this.setDisplayed("");
+ }else if(this.lastXY){
+ supr.setXY.call(this, this.lastXY);
+ }else if(this.lastLT){
+ supr.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]);
+ }
+ },
+
+ // private
+ hideAction : function(){
+ this.visible = false;
+ if(this.useDisplay === true){
+ this.setDisplayed(false);
+ }else{
+ this.setLeftTop(-10000,-10000);
+ }
+ },
+
+ // overridden Element method
+ setVisible : function(v, a, d, c, e){
+ if(v){
+ this.showAction();
+ }
+ if(a && v){
+ var cb = function(){
+ this.sync(true);
+ if(c){
+ c();
+ }
+ }.createDelegate(this);
+ supr.setVisible.call(this, true, true, d, cb, e);
+ }else{
+ if(!v){
+ this.hideUnders(true);
+ }
+ var cb = c;
+ if(a){
+ cb = function(){
+ this.hideAction();
+ if(c){
+ c();
+ }
+ }.createDelegate(this);
+ }
+ supr.setVisible.call(this, v, a, d, cb, e);
+ if(v){
+ this.sync(true);
+ }else if(!a){
+ this.hideAction();
+ }
+ }
+ },
+
+ storeXY : function(xy){
+ delete this.lastLT;
+ this.lastXY = xy;
+ },
+
+ storeLeftTop : function(left, top){
+ delete this.lastXY;
+ this.lastLT = [left, top];
+ },
+
+ // private
+ beforeFx : function(){
+ this.beforeAction();
+ return Ext.Layer.superclass.beforeFx.apply(this, arguments);
+ },
+
+ // private
+ afterFx : function(){
+ Ext.Layer.superclass.afterFx.apply(this, arguments);
+ this.sync(this.isVisible());
+ },
+
+ // private
+ beforeAction : function(){
+ if(!this.updating && this.shadow){
+ this.shadow.hide();
+ }
+ },
+
+ // overridden Element method
+ setLeft : function(left){
+ this.storeLeftTop(left, this.getTop(true));
+ supr.setLeft.apply(this, arguments);
+ this.sync();
+ },
+
+ setTop : function(top){
+ this.storeLeftTop(this.getLeft(true), top);
+ supr.setTop.apply(this, arguments);
+ this.sync();
+ },
+
+ setLeftTop : function(left, top){
+ this.storeLeftTop(left, top);
+ supr.setLeftTop.apply(this, arguments);
+ this.sync();
+ },
+
+ setXY : function(xy, a, d, c, e){
+ this.fixDisplay();
+ this.beforeAction();
+ this.storeXY(xy);
+ var cb = this.createCB(c);
+ supr.setXY.call(this, xy, a, d, cb, e);
+ if(!a){
+ cb();
+ }
+ },
+
+ // private
+ createCB : function(c){
+ var el = this;
+ return function(){
+ el.constrainXY();
+ el.sync(true);
+ if(c){
+ c();
+ }
+ };
+ },
+
+ // overridden Element method
+ setX : function(x, a, d, c, e){
+ this.setXY([x, this.getY()], a, d, c, e);
+ },
+
+ // overridden Element method
+ setY : function(y, a, d, c, e){
+ this.setXY([this.getX(), y], a, d, c, e);
+ },
+
+ // overridden Element method
+ setSize : function(w, h, a, d, c, e){
+ this.beforeAction();
+ var cb = this.createCB(c);
+ supr.setSize.call(this, w, h, a, d, cb, e);
+ if(!a){
+ cb();
+ }
+ },
+
+ // overridden Element method
+ setWidth : function(w, a, d, c, e){
+ this.beforeAction();
+ var cb = this.createCB(c);
+ supr.setWidth.call(this, w, a, d, cb, e);
+ if(!a){
+ cb();
+ }
+ },
+
+ // overridden Element method
+ setHeight : function(h, a, d, c, e){
+ this.beforeAction();
+ var cb = this.createCB(c);
+ supr.setHeight.call(this, h, a, d, cb, e);
+ if(!a){
+ cb();
+ }
+ },
+
+ // overridden Element method
+ setBounds : function(x, y, w, h, a, d, c, e){
+ this.beforeAction();
+ var cb = this.createCB(c);
+ if(!a){
+ this.storeXY([x, y]);
+ supr.setXY.call(this, [x, y]);
+ supr.setSize.call(this, w, h, a, d, cb, e);
+ cb();
+ }else{
+ supr.setBounds.call(this, x, y, w, h, a, d, cb, e);
+ }
+ return this;
+ },
+
+
+ setZIndex : function(zindex){
+ this.zindex = zindex;
+ this.setStyle("z-index", zindex + 2);
+ if(this.shadow){
+ this.shadow.setZIndex(zindex + 1);
+ }
+ if(this.shim){
+ this.shim.setStyle("z-index", zindex);
+ }
+ }
+});
})();
Ext.Shadow = function(config){
@@ -16064,6 +16082,7 @@
defaultNSCMargins : {left:5,top:5,right:5,bottom:5},
// private
defaultEWCMargins : {left:5,top:0,right:5,bottom:0},
+ floatingZIndex: 100,
isCollapsed : false,
@@ -16197,7 +16216,7 @@
}
c.hide();
c.dom.style.visibility = 'hidden';
- this.panel.el.setStyle('z-index', 100);
+ this.panel.el.setStyle('z-index', this.floatingZIndex);
},
// private
@@ -16351,7 +16370,7 @@
}
this.restoreLT = [this.el.dom.style.left, this.el.dom.style.top];
this.el.alignTo(this.collapsedEl, this.getCollapseAnchor());
- this.el.setStyle("z-index", 102);
+ this.el.setStyle("z-index", this.floatingZIndex+2);
if(this.animFloat !== false){
this.beforeSlide();
this.el.slideIn(this.getSlideAnchor(), {
@@ -16773,7 +16792,7 @@
// private
adjustWidthAnchor : function(value, comp){
- return value - (comp.isFormField ? (comp.hideLabel ? 0 : this.labelAdjust) : 0);
+ return value - (comp.isFormField || comp.fieldLabel ? (comp.hideLabel ? 0 : this.labelAdjust) : 0);
},
// private
@@ -17662,6 +17681,7 @@
this.fbar.toolbarCls = 'x-panel-fbar';
var bct = this.footer.createChild({cls: 'x-panel-btns x-panel-btns-'+this.buttonAlign});
+ this.fbar.ownerCt = this;
this.fbar.render(bct);
bct.createChild({cls:'x-clear'});
}
@@ -17794,6 +17814,19 @@
}
},
+ doLayout : function(shallow){
+ Ext.Panel.superclass.doLayout.call(this, shallow);
+ if(this.topToolbar){
+ this.topToolbar.doLayout();
+ }
+ if(this.bottomToolbar){
+ this.bottomToolbar.doLayout();
+ }
+ if(this.fbar){
+ this.fbar.doLayout();
+ }
+ },
+
// private
onShow : function(){
if(this.floating){
@@ -18006,7 +18039,22 @@
if(w !== undefined || h !== undefined){
if(!this.collapsed){
if(typeof w == 'number'){
- w = this.adjustBodyWidth(w - this.getFrameWidth());
+ w = this.adjustBodyWidth(w - this.getFrameWidth());
+ if(this.tbar){
+ this.tbar.setWidth(w);
+ if(this.topToolbar){
+ this.topToolbar.setSize(w);
+ }
+ }
+ if(this.bbar){
+ this.bbar.setWidth(w);
+ if(this.bottomToolbar){
+ this.bottomToolbar.setSize(w);
+ }
+ }
+ if(this.fbar){
+ this.fbar.setSize(w - this.fbar.container.getFrameWidth('lr'));
+ }
this.body.setWidth(w);
}else if(w == 'auto'){
this.body.setWidth(w);
@@ -18014,24 +18062,11 @@
if(typeof h == 'number'){
h = this.adjustBodyHeight(h - this.getFrameHeight());
- this.body.setHeight(h);
+ this.body.setHeight(h);
}else if(h == 'auto'){
this.body.setHeight(h);
}
- if(this.tbar){
- this.tbar.setWidth(w);
- if(this.topToolbar){
- this.topToolbar.setSize(w);
- }
- }
- if(this.bbar){
- this.bbar.setWidth(w);
- if(this.bottomToolbar){
- this.bottomToolbar.setSize(w);
- }
- }
-
if(this.disabled && this.el._mask){
this.el._mask.setSize(this.el.dom.clientWidth, this.el.getHeight());
}
@@ -18325,6 +18360,7 @@
this.mask = this.container.createChild({cls:"ext-el-mask"}, this.el.dom);
this.mask.enableDisplayMode("block");
this.mask.hide();
+ this.mask.on('click', this.focus, this);
}
},
@@ -18474,14 +18510,15 @@
focus : function(){
var f = this.focusEl, db = this.defaultButton, t = typeof db;
if(t != 'undefined'){
- if(t == 'number'){
- f = this.buttons[db];
+ if(t == 'number' && this.fbar){
+ f = this.fbar.items.get(db);
}else if(t == 'string'){
f = Ext.getCmp(db);
}else{
f = db;
}
}
+ f = f || this.focusEl;
f.focus.defer(10, f);
},
@@ -23568,7 +23605,13 @@
Ext.Editor = function(field, config){
- this.field = field;
+ if(field.field){
+ this.field = Ext.create(field.field, 'textfield');
+ config = Ext.apply({}, field); // copy so we don't disturb original config
+ delete config.field;
+ }else{
+ this.field = field;
+ }
Ext.Editor.superclass.constructor.call(this, config);
};
@@ -23578,6 +23621,7 @@
+
value : "",
alignment: "c-c?",
@@ -23619,10 +23663,13 @@
cls: "x-editor",
parentEl : ct,
shim : this.shim,
- shadowOffset:4,
+ shadowOffset: this.shadowOffset || 4,
id: this.id,
constrain: this.constrain
});
+ if(this.zIndex){
+ this.el.setZIndex(this.zIndex);
+ }
this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden");
if(this.field.msgTarget != 'title'){
this.field.msgTarget = 'qtip';
@@ -27887,7 +27934,7 @@
hideOnClick : true,
- hideDelay : 100,
+ clickHideDelay : 1,
// private
ctype: "Ext.menu.BaseItem",
@@ -27953,7 +28000,7 @@
// private
handleClick : function(e){
if(this.hideOnClick){
- this.parentMenu.hide.defer(this.hideDelay, this.parentMenu, [true]);
+ this.parentMenu.hide.defer(this.clickHideDelay, this.parentMenu, [true]);
}
},
@@ -28434,7 +28481,7 @@
initValue : function(){
if(this.value !== undefined){
this.setValue(this.value);
- }else if(this.el.dom.value.length > 0 && this.el.dom.value != this.emptyText){
+ }else if(!Ext.isEmpty(this.el.dom.value) && this.el.dom.value != this.emptyText){
this.setValue(this.el.dom.value);
}
// reference to original value for reset
@@ -28635,6 +28682,11 @@
}
},
+ // private, does not work for all fields
+ append :function(v){
+ this.setValue([this.getValue(), v].join(''));
+ },
+
// private
adjustSize : function(w, h){
var s = Ext.form.Field.superclass.adjustSize.call(this, w, h);
@@ -29526,7 +29578,7 @@
if(typeof this.maxValue == "string"){
this.maxValue = this.parseDate(this.maxValue);
}
- this.ddMatch = null;
+ this.disabledDatesRE = null;
this.initDisabledDays();
},
@@ -29610,7 +29662,7 @@
}
}
var fvalue = this.formatDate(value);
- if(this.ddMatch && this.ddMatch.test(fvalue)){
+ if(this.disabledDatesRE && this.disabledDatesRE.test(fvalue)){
this.markInvalid(String.format(this.disabledDatesText, fvalue));
return false;
}
@@ -29696,7 +29748,7 @@
Ext.apply(this.menu.picker, {
minDate : this.minValue,
maxDate : this.maxValue,
- disabledDatesRE : this.ddMatch,
+ disabledDatesRE : this.disabledDatesRE,
disabledDatesText : this.disabledDatesText,
disabledDays : this.disabledDays,
disabledDaysText : this.disabledDaysText,
@@ -29726,7 +29778,55 @@
});
Ext.reg('datefield', Ext.form.DateField);
+
+Ext.form.DisplayField = Ext.extend(Ext.form.Field, {
+ validationEvent : false,
+ validateOnBlur : false,
+ defaultAutoCreate : {tag: "div"},
+ fieldClass : "x-form-display-field",
+ htmlEncode: false,
+
+ // private
+ initEvents : function(){},
+
+ isValid : function(){
+ return true;
+ },
+
+ validate : function(){
+ return true;
+ },
+
+ getRawValue : function(){
+ var v = this.rendered ? this.el.dom.innerHTML : Ext.value(this.value, '');
+ if(v === this.emptyText){
+ v = '';
+ }
+ if(this.htmlEncode){
+ v = Ext.util.Format.htmlDecode(v);
+ }
+ return v;
+ },
+
+ getValue : function(){
+ return this.getRawValue();
+ },
+
+ setRawValue : function(v){
+ if(this.htmlEncode){
+ v = Ext.util.Format.htmlEncode(v);
+ }
+ return this.rendered ? (this.el.dom.innerHTML = (v === null || v === undefined ? '' : v)) : (this.value = v);
+ },
+
+ setValue : function(v){
+ this.setRawValue(v);
+ }
+});
+
+Ext.reg('displayfield', Ext.form.DisplayField);
+
Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, {
@@ -31337,10 +31437,6 @@
// private
initComponent :function(){
this.form = this.createForm();
- if(this.fileUpload) {
- this.bodyCfg.enctype = 'multipart/form-data';
- }
-
Ext.FormPanel.superclass.initComponent.call(this);
this.bodyCfg = {
@@ -31349,7 +31445,9 @@
method : this.method || 'POST',
id : this.formId || Ext.id()
};
-
+ if(this.fileUpload) {
+ this.bodyCfg.enctype = 'multipart/form-data';
+ }
this.initItems();
this.addEvents(
@@ -33709,13 +33807,16 @@
hd.style.width = ws[i];
}
- var ns = this.getRows();
+ var ns = this.getRows(), row, trow;
for(var i = 0, len = ns.length; i < len; i++){
- ns[i].style.width = tw;
- ns[i].firstChild.style.width = tw;
- var row = ns[i].firstChild.rows[0];
- for(var j = 0; j < clen; j++){
- row.childNodes[j].style.width = ws[j];
+ row = ns[i];
+ row.style.width = tw;
+ if(row.firstChild){
+ row.firstChild.style.width = tw;
+ trow = row.firstChild.rows[0];
+ for (var j = 0; j < clen; j++) {
+ trow.childNodes[j].style.width = ws[j];
+ }
}
}
@@ -33731,11 +33832,14 @@
var hd = this.getHeaderCell(col);
hd.style.width = w;
- var ns = this.getRows();
+ var ns = this.getRows(), row;
for(var i = 0, len = ns.length; i < len; i++){
- ns[i].style.width = tw;
- ns[i].firstChild.style.width = tw;
- ns[i].firstChild.rows[0].childNodes[col].style.width = w;
+ row = ns[i];
+ row.style.width = tw;
+ if(row.firstChild){
+ row.firstChild.style.width = tw;
+ row.firstChild.rows[0].childNodes[col].style.width = w;
+ }
}
this.onColumnWidthUpdated(col, w, tw);
@@ -33752,11 +33856,14 @@
var hd = this.getHeaderCell(col);
hd.style.display = display;
- var ns = this.getRows();
+ var ns = this.getRows(), row;
for(var i = 0, len = ns.length; i < len; i++){
- ns[i].style.width = tw;
- ns[i].firstChild.style.width = tw;
- ns[i].firstChild.rows[0].childNodes[col].style.display = display;
+ row = ns[i];
+ row.style.width = tw;
+ if(row.firstChild){
+ row.firstChild.style.width = tw;
+ row.firstChild.rows[0].childNodes[col].style.display = display;
+ }
}
this.onColumnHiddenUpdated(col, hidden, tw);
@@ -33899,6 +34006,11 @@
//g.on("headercontextmenu", this.handleHdCtx, this);
}
+ if(g.trackMouseOver){
+ this.mainBody.on("mouseover", this.onRowOver, this);
+ this.mainBody.on("mouseout", this.onRowOut, this);
+ }
+
if(g.enableDragDrop || g.enableDrag){
this.dragZone = new Ext.grid.GridDragZone(g, {
ddGroup : g.ddGroup || 'GridDD'
@@ -33994,7 +34106,7 @@
var cm = this.cm, ts = this.templates;
var ct = ts.hcell;
- var cb = [], sb = [], p = {};
+ var cb = [], p = {};
for(var i = 0, len = cm.getColumnCount(); i < len; i++){
p.id = cm.getColumnId(i);
@@ -34201,7 +34313,7 @@
// private
fitColumns : function(preventRefresh, onlyExpand, omitColumn){
- var cm = this.cm, leftOver, dist, i;
+ var cm = this.cm, i;
var tw = cm.getTotalWidth(false);
var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset;
@@ -34327,7 +34439,6 @@
}else{
index = ds.indexOf(record);
}
- var cls = [];
this.insertRows(ds, index, index, true);
this.getRow(index).rowIndex = index;
this.onRemove(ds, record, index+1, true);
@@ -34560,16 +34671,10 @@
// private
initUI : function(grid){
grid.on("headerclick", this.onHeaderClick, this);
-
- if(grid.trackMouseOver){
- grid.on("mouseover", this.onRowOver, this);
- grid.on("mouseout", this.onRowOut, this);
- }
},
// private
initEvents : function(){
-
},
// private
@@ -34592,7 +34697,7 @@
// private
onRowOut : function(e, t){
var row;
- if((row = this.findRowIndex(t)) !== false && row !== this.findRowIndex(e.getRelatedTarget())){
+ if((row = this.findRowIndex(t)) !== false && !e.within(this.getRow(row), true)){
this.removeRowClass(row, "x-grid3-row-over");
}
},
@@ -34806,7 +34911,7 @@
var t = this.view.findHeaderCell(e.getTarget());
if(t){
var xy = this.view.fly(t).getXY(), x = xy[0], y = xy[1];
- var exy = e.getXY(), ex = exy[0], ey = exy[1];
+ var exy = e.getXY(), ex = exy[0];
var w = t.offsetWidth, adjust = false;
if((ex - x) <= this.hw){
adjust = -1;
@@ -35609,6 +35714,10 @@
return this.config[index].id;
},
+ getColumnAt : function(index){
+ return this.config[index];
+ },
+
setConfig : function(config, initial){
if(!initial){ // cleanup
@@ -35824,7 +35933,7 @@
getCellEditor : function(colIndex, rowIndex){
- return this.config[colIndex].editor;
+ return this.config[colIndex].getCellEditor(rowIndex);
},
@@ -36597,6 +36706,7 @@
ed.record = r;
ed.on("complete", this.onEditComplete, this, {single: true});
ed.on("specialkey", this.selModel.onEditorKey, this.selModel);
+
this.activeEditor = ed;
var v = this.preEditValue(r, field);
ed.startEdit(this.view.getCell(row, col).firstChild, v === undefined ? '' : v);
@@ -36901,16 +37011,14 @@
Ext.apply(this, config);
if(typeof this.renderer == "string"){
- this.renderer = Ext.util.Format[c.renderer];
+ this.renderer = Ext.util.Format[this.renderer];
}
if(typeof this.id == "undefined"){
this.id = ++Ext.grid.Column.AUTO_ID;
}
if(this.editor){
- if(this.editor.isFormField){
- this.editor = new Ext.grid.GridEditor(this.editor);
- }else if(this.editor.xtype && !this.editor.events){
- this.editor = new Ext.grid.GridEditor(Ext.create(this.editor, 'textfield'));
+ if(this.editor.xtype && !this.editor.events){
+ this.editor = Ext.create(this.editor, 'textfield');
}
}
}
@@ -36924,6 +37032,25 @@
return " ";
}
return value;
+ },
+
+ getEditor: function(rowIndex){
+ return this.editable !== false ? this.editor : null;
+ },
+
+ getCellEditor: function(rowIndex){
+ var editor = this.getEditor(rowIndex);
+ if(editor){
+ if(!editor.startEdit){
+ if(!editor.gridEditor){
+ editor.gridEditor = new Ext.grid.GridEditor(editor);
+ }
+ return editor.gridEditor;
+ }else if(editor.startEdit){
+ return editor;
+ }
+ }
+ return null;
}
};
@@ -38995,7 +39122,7 @@
}
function startUp() {
- currentToken = hiddenField.value;
+ currentToken = hiddenField.value ? hiddenField.value : getHash();
if (Ext.isIE) {
checkIFrame();
Modified: mickael/trunk/ext/v3.0.0-a1/ext-all.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/ext-all.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/ext-all.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -444,36 +444,6 @@
Ext.EventManager.removeListener(frame,'load',cb,this);this.fireEvent("requestcomplete",this,r,o);Ext.callback(o.success,o.scope,[r,o]);Ext.callback(o.callback,o.scope,[o,true,r]);if(!this.debugUploads){setTimeout(function(){Ext.removeNode(frame);},100);}}
Ext.EventManager.on(frame,'load',cb,this);form.submit();if(hiddens){for(var i=0,len=hiddens.length;i<len;i++){Ext.removeNode(hiddens[i]);}}}});Ext.Ajax=new Ext.data.Connection({autoAbort:false,serializeForm:function(form){return Ext.lib.Ajax.serializeForm(form);}});
-(function(){var transactions={},TID=0,impl,d,pollStartTimer=0,callBuffer=[],callTask,providers={};var get=function(id){return transactions[id]||{};}
-var createEvent=function(t,data,xhr,success,hs){return Ext.apply(t||{},{xhr:xhr,success:success,data:data,arg:hs});}
-var doCallback=function(data,t,success,xhr){var fn=success?'success':'failure';if(t&&t.cb){var hs=t.cb;var e=createEvent(t,data,xhr,success,hs);if(typeof hs=='function'){delete e.arg;hs(data,e);}else{Ext.callback(hs[fn],hs.scope,[data,e]);Ext.callback(hs.callback,hs.scope,[data,e]);}}}
-var handleEvent=function(data,xhr){if(!data){return;}
-var t=get(data.tid);switch(data.type){case'rpc':if(t){doCallback(data.result,t,true,xhr);data.xhr=xhr;d.fireEvent('event',data);delete transactions[data.tid];}else{data.xhr=xhr;d.fireEvent('event',data);}
-break;case'event':data.xhr=xhr;d.fireEvent(data.name,data);d.fireEvent('event',data);break;case'exception':if(t){t.code=data.code;t.message=data.message;t.trace=data.where;doCallback(data.result,t,false,xhr);data.xhr=xhr;d.fireEvent('exception',data);delete transactions[data.tid];}else{data.xhr=xhr;d.fireEvent('exception',data);}
-if(data.where&&d.enableDebug){Ext.Msg.maxWidth=800;Ext.Msg.show({title:'Exception occurred while making a remote call to the server',msg:'Stack trace from the server:',buttons:Ext.MessageBox.OK,multiline:400,width:800,value:data.message+'\n'+data.where});}
-break;}}
-var handleException=function(opt,xhr,type){var t=get(opt.tid);if(t){t.xhr=xhr;t.type=type||d.exceptions.TRANSPORT;doCallback(null,t,false,xhr);d.fireEvent('exception',t);delete transactions[opt.tid];}else{d.fireEvent('exception',{tid:opt.tid,xhr:xhr,code:type||d.exceptions.TRANSPORT});}}
-var cb=function(opt,success,xhr){if(success){var data=null;if(!Ext.isEmpty(xhr.responseText)){if(typeof xhr.responseText=='object'){data=xhr.responseText;}else{try{data=Ext.decode(xhr.responseText);}catch(e){return handleException(opt,xhr,d.exceptions.PARSE);}}
-if(Ext.isArray(data)){for(var i=0,len=data.length;i<len;i++){handleEvent(data[i],xhr);}}else{handleEvent(data,xhr);}}else if(opt.ts){for(var j=0,len=opt.ts.length;j<len;j++){doCallback(null,transactions[opt.ts[j].tid],true,xhr);}}}else{handleException(opt,xhr);}}
-var doSend=function(data){if(d.enableUrlEncode){var params={};params[typeof d.enableUrlEncode=='string'?d.enableUrlEncode:'data']=Ext.encode(data);Ext.Ajax.request({url:d.remoteUrl,params:params,callback:cb,ts:data});}else{Ext.Ajax.request({url:d.remoteUrl,jsonData:data,callback:cb,ts:data});}}
-var combineAndSend=function(){var len=callBuffer.length;if(len>0){doSend(len==1?callBuffer[0]:callBuffer);callBuffer=[];}}
-var doCall=function(c,m,args){var data=null,hs=args[m.len],scope=args[m.len+1];var t={tid:++TID,args:args,action:c,method:m,cb:scope&&typeof hs=='function'?hs.createDelegate(scope):hs};if(d.fireEvent('beforecall',t)!==false){transactions[t.tid]=t;if(m.len!==0){data=args.slice(0,m.len);}
-callBuffer.push({action:c,method:m.name,tid:t.tid,data:data});if(d.enableBuffer){if(!callTask){callTask=new Ext.util.DelayedTask(combineAndSend);}
-callTask.delay(typeof d.enableBuffer=='number'?d.enableBuffer:10);}else{combineAndSend();}
-d.fireEvent('call',t);}}
-var doForm=function(c,m,form,callback,scope){var t={tid:++TID,action:c,method:m,args:[form,callback,scope],cb:scope&&typeof callback=='function'?callback.createDelegate(scope):callback};transactions[t.tid]=t;form=Ext.getDom(form);var isUpload=String(form.getAttribute("enctype")).toLowerCase()=='multipart/form-data';var params={extTID:t.tid,extAction:c,extMethod:m.name,extUpload:String(isUpload)};if(callback&&typeof callback=='object'){Ext.apply(params,callback.params);}
-Ext.Ajax.request({url:d.remoteUrl,params:params,callback:cb,form:form,isUpload:isUpload,ts:{action:c,method:m.name,tid:t.tid,data:null}});}
-var createMethod=function(c,m){var f;if(!m.formHandler){f=function(){doCall(c,m,Array.prototype.slice.call(arguments,0));};}else{f=function(form,callback,scope){doForm(c,m,form,callback,scope);};}
-f.directCfg={action:c,method:m};return f;}
-var onProviderData=function(p,e){switch(e.format){case'string':cb({},true,{responseText:e.data});break;default:cb({},true,e.data);}}
-var onProviderException=function(p,e){handleException({},e.data,e.type);}
-impl=Ext.extend(Ext.util.Observable,{exceptions:{TRANSPORT:'xhr',PARSE:'parse',LOGIN:'login',SERVER:'exception'},constructor:function(){impl.superclass.constructor.call(this);this.addEvents('beforecall','call','beforeevent','event','exception');},defineAPI:function(data){d.remoteUrl=data.url;var o=data.actions||data.cls;for(var c in o){var cls=window[c]||(window[c]={});var ms=o[c];for(var i=0,len=ms.length;i<len;i++){var m=ms[i];cls[m.name]=createMethod(c,m);}}},inject:function(stringData,opt){cb(opt||{},true,{responseText:stringData});},injectRaw:function(opt,success,xhr){cb(opt,success,xhr);},injectTransaction:function(callback){var t={tid:++TID,action:c,method:m,cb:callback};transactions[t.tid]=t;return t;},addProvider:function(provider){if(!provider.events){provider=new d.PROVIDERS[provider.type](provider);}
-if(!provider.isConnected()){provider.connect();}
-provider.id=provider.id||Ext.id;providers[provider.id]=provider;provider.on('data',onProviderData);provider.on('exception',onProviderException);return provider;},getProvider:function(id){return providers[id];},removeProvider:function(id){var provider=id.id?id:providers[id.id];provider.un('data',onProviderData);provider.un('exception',onProviderException);delete providers[provider.id];return provider;},enableBuffer:10});Ext.Direct=d=new impl();d.PROVIDERS={};var reconnId=0;var retryId=0;var clear=function(){clearTimeout(reconnId);clearTimeout(retryId);}
-d.Flash={onData:function(strData){setTimeout(function(){d.inject(strData);},10);},onConnect:function(success){if(success){clear();d.stopPoll();d.fireEvent('connect');}else{d.startPoll();if(d.autoReconnect){d.Flash.reconnect();}}},getFlash:function(){return Ext.isIE?window.xflashDirect:document.xflashDirect;},reconnect:function(){clear();var flash=d.Flash.getFlash();if(flash){reconnId=setTimeout(function(){flash.reconnect();},1000);retryId=setInterval(function(){flash.reconnect();},30000);}},onClose:function(){d.fireEvent('disconnect');d.startPoll();if(d.autoReconnect){d.Flash.reconnect();}}};})();
-
-Ext.data.DirectProvider=Ext.extend(Ext.util.Observable,{priority:1,constructor:function(config){Ext.apply(this,config);this.addEvents('connect','disconnect','data','exception');Ext.data.DirectProvider.superclass.constructor.apply(this,arguments);},isConnected:function(){return false;},connect:Ext.emptyFn,disconnect:Ext.emptyFn});Ext.data.PollingProvider=Ext.extend(Ext.data.DirectProvider,{priority:3,interval:3000,constructor:function(config){Ext.data.PollingProvider.superclass.constructor.apply(this,arguments);this.addEvents('beforepoll','poll');},isConnected:function(){return!!this.pollTask;},connect:function(){if(this.url&&!this.pollTask){this.pollTask=Ext.TaskMgr.start({run:function(){if(this.fireEvent('beforepoll')!==false){Ext.Ajax.request({url:this.url,callback:this.onData,scope:this,params:this.baseParams});}},interval:this.interval,scope:this});this.fireEvent('connect',this);}else if(!this.url){throw'Error initializing PollingProvider, no url configured.';}},disconnect:function(){if(this.pollTask){Ext.TaskMgr.stop(this.pollTask);delete this.pollTask;this.fireEvent('disconnect',this);}},onData:function(opt,success,xhr){if(success){this.fireEvent('data',this,{format:'xhr',data:xhr});}else{this.fireEvent('exception',this,{format:'xhr',data:xhr,type:Ext.Direct.exceptions.TRANSPORT});}}});Ext.Direct.PROVIDERS['poll']=Ext.data.PollingProvider;
-
Ext.Updater=Ext.extend(Ext.util.Observable,{constructor:function(el,forceNew){el=Ext.get(el);if(!forceNew&&el.updateManager){return el.updateManager;}
this.el=el;this.defaultUrl=null;this.addEvents("beforeupdate","update","failure");Ext.apply(this,Ext.Updater.defaults);this.transaction=null;this.refreshDelegate=this.refresh.createDelegate(this);this.updateDelegate=this.update.createDelegate(this);this.formUpdateDelegate=this.formUpdate.createDelegate(this);if(!this.renderer){this.renderer=this.getDefaultRenderer();}
Ext.Updater.superclass.constructor.call(this);},getDefaultRenderer:function(){return new Ext.Updater.BasicRenderer();},getEl:function(){return this.el;},update:function(url,params,callback,discardUrl){if(this.fireEvent("beforeupdate",this.el,url,params)!==false){var cfg,callerScope;if(typeof url=="object"){cfg=url;url=cfg.url;params=params||cfg.params;callback=callback||cfg.callback;discardUrl=discardUrl||cfg.discardUrl;callerScope=cfg.scope;if(typeof cfg.nocache!="undefined"){this.disableCaching=cfg.nocache;};if(typeof cfg.text!="undefined"){this.indicatorText='<div class="loading-indicator">'+cfg.text+"</div>";};if(typeof cfg.scripts!="undefined"){this.loadScripts=cfg.scripts;};if(typeof cfg.timeout!="undefined"){this.timeout=cfg.timeout;};}
@@ -488,20 +458,21 @@
if(this.loadScripts){this.renderer.render(this.el,response,this,this.updateComplete.createDelegate(this,[response]));}else{this.renderer.render(this.el,response,this);this.updateComplete(response);}},updateComplete:function(response){this.fireEvent("update",this.el,response);if(typeof response.argument.callback=="function"){response.argument.callback.call(response.argument.scope,this.el,true,response,response.argument.options);}},processFailure:function(response){this.transaction=null;this.fireEvent("failure",this.el,response);if(typeof response.argument.callback=="function"){response.argument.callback.call(response.argument.scope,this.el,false,response,response.argument.options);}},setRenderer:function(renderer){this.renderer=renderer;},getRenderer:function(){return this.renderer;},setDefaultUrl:function(defaultUrl){this.defaultUrl=defaultUrl;},abort:function(){if(this.transaction){Ext.Ajax.abort(this.transaction);}},isUpdating:function(){if(this.transaction){return Ext.Ajax.isLoading(this.transaction);}
return false;}});Ext.Updater.defaults={timeout:30,loadScripts:false,sslBlankUrl:(Ext.SSL_SECURE_URL||"javascript:false"),disableCaching:false,showLoadIndicator:true,indicatorText:'<div class="loading-indicator">Loading...</div>'};Ext.Updater.updateElement=function(el,url,params,options){var um=Ext.get(el).getUpdater();Ext.apply(um,options);um.update(url,params,options?options.callback:null);};Ext.Updater.BasicRenderer=function(){};Ext.Updater.BasicRenderer.prototype={render:function(el,response,updateManager,callback){el.update(response.responseText,updateManager.loadScripts,callback);}};Ext.UpdateManager=Ext.Updater;
-(function(){Date.formatCodeToRegex=function(character,currentGroup){var p=Date.parseCodes[character];if(p){p=Ext.type(p)=='function'?p():p;Date.parseCodes[character]=p;}
-return p?Ext.applyIf({c:p.c?String.format(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.escapeRe(character)}}
+(function(){function xf(format){var args=Array.prototype.slice.call(arguments,1);return format.replace(/\{(\d+)\}/g,function(m,i){return args[i];});}
+Date.formatCodeToRegex=function(character,currentGroup){var p=Date.parseCodes[character];if(p){p=Ext.type(p)=='function'?p():p;Date.parseCodes[character]=p;}
+return p?Ext.applyIf({c:p.c?xf(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.escapeRe(character)}}
var $f=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{count:0},parseRegexes:[],formatFunctions:{count:0},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},getShortMonthName:function(month){return Date.monthNames[month].substring(0,3);},getShortDayName:function(day){return Date.dayNames[day].substring(0,3);},getMonthNumber:function(name){return Date.monthNumbers[name.substring(0,1).toUpperCase()+name.substring(1,3).toLowerCase()];},formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"this.getFullYear()",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var c="Y-m-dTH:i:sP",code=[],i=0,l=c.length;i<l;++i){var e=c.charAt(i);code.push(e=="T"?"'T'":Date.getFormatCode(e));}
return code.join(" + ");},U:"Math.round(this.getTime() / 1000)"},parseDate:function(input,format){var p=Date.parseFunctions;if(p[format]==null){Date.createParser(format);}
var func=p[format];return Date[func](input);},getFormatCode:function(character){var f=Date.formatCodes[character];if(f){f=Ext.type(f)=='function'?f():f;Date.formatCodes[character]=f;}
return f||("'"+String.escape(character)+"'");},createNewFormat:function(format){var funcName="format"+Date.formatFunctions.count++,code="Date.prototype."+funcName+" = function(){return ",special=false,ch='';Date.formatFunctions[format]=funcName;for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}
else if(special){special=false;code+="'"+String.escape(ch)+"' + ";}
else{code+=Date.getFormatCode(ch)+" + ";}}
-eval(code.substring(0,code.length-3)+";}");},createParser:function(format){var funcName="parse"+Date.parseFunctions.count++,regexNum=Date.parseRegexes.length,currentGroup=1,code=["Date."+funcName+" = function(input){","var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;","input = String(input);","d = new Date();","y = d.getFullYear();","m = d.getMonth();","d = d.getDate();","var results = input.match(Date.parseRegexes["+regexNum+"]);","if (results && results.length > 0) {\n"].join('\n'),regex="",special=false,ch='';Date.parseFunctions[format]=funcName;for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}
+eval(code.substring(0,code.length-3)+";}");},createParser:function(){var code=["Date.{0} = function(input){","var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;","input = String(input);","d = new Date();","y = d.getFullYear();","m = d.getMonth();","d = d.getDate();","var results = input.match(Date.parseRegexes[{1}]);","if(results && results.length > 0){","{2}","if(u){","v = new Date(u * 1000);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){","v = new Date(y, m, d, h, i, s, ms);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0){","v = new Date(y, m, d, h, i, s);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0){","v = new Date(y, m, d, h, i);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0){","v = new Date(y, m, d, h);","}else if (y >= 0 && m >= 0 && d > 0){","v = new Date(y, m, d);","}else if (y >= 0 && m >= 0){","v = new Date(y, m);","}else if (y >= 0){","v = new Date(y);","}","}","return (v && (z != null || o != null))?"
++" (Ext.type(z) == 'number' ? v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - z) :"
++" v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn))) : v;","}"].join('\n');return function(format){var funcName="parse"+Date.parseFunctions.count++,regexNum=Date.parseRegexes.length,currentGroup=1,calc="",regex="",special=false,ch="";Date.parseFunctions[format]=funcName;for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}
else if(special){special=false;regex+=String.escape(ch);}
-else{var obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}
-code+=["if (u){","v = new Date(u * 1000);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){","v = new Date(y, m, d, h, i, s, ms);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0){","v = new Date(y, m, d, h, i, s);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0){","v = new Date(y, m, d, h, i);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0){","v = new Date(y, m, d, h);","}else if (y >= 0 && m >= 0 && d > 0){","v = new Date(y, m, d);","}else if (y >= 0 && m >= 0){","v = new Date(y, m);","}else if (y >= 0){","v = new Date(y);","}","}","return (v && (z != null || o != null))?"
-+" (Ext.type(z) == 'number' ? v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - z) :"
-+" v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn))) : v;","}"].join('\n');Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$","i");eval(code);},parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(Date.getShortDayName(i)),++i);return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:0,c:null,s:"(?:\\d{1,3}"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(Date.getShortMonthName(i)),++i);return Ext.applyIf({s:"("+a.join("|")+")"},$f("F"));},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return $f("Y");},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\n"
+else{var obj=$f(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){calc+=obj.c;}}}
+Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$","i");eval(xf(code,funcName,regexNum,calc));}}(),parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(Date.getShortDayName(i)),++i);return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:0,c:null,s:"(?:\\d{1,3})"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(Date.getShortMonthName(i)),++i);return Ext.applyIf({s:"("+a.join("|")+")"},$f("F"));},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return $f("Y");},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\n"
+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (results[{0}] == 'am') {\n"
+"if (h == 12) { h = 0; }\n"
+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"},A:{g:1,c:"if (results[{0}] == 'AM') {\n"
@@ -846,8 +817,6 @@
Ext.data.XmlStore=function(c){Ext.data.XmlStore.superclass.constructor.call(this,Ext.apply(c,{proxy:c.proxy||(!c.data?new Ext.data.HttpProxy({url:c.url}):undefined),reader:new Ext.data.XmlReader(c,c.fields)}));};Ext.extend(Ext.data.XmlStore,Ext.data.Store);Ext.reg('xmlstore',Ext.data.XmlStore);
-Ext.data.DirectStore=function(c){var pcfg=Ext.copyTo({},c,'paramOrder,paramsAsHash,directFn');Ext.data.DirectStore.superclass.constructor.call(this,Ext.apply(c,{proxy:new Ext.data.DirectProxy(pcfg),reader:new Ext.data.JsonReader(c,c.fields)}));};Ext.extend(Ext.data.DirectStore,Ext.data.Store);
-
Ext.data.Field=function(config){if(typeof config=="string"){config={name:config};}
Ext.apply(this,config);if(!this.type){this.type="auto";}
var st=Ext.data.SortTypes;if(typeof this.sortType=="string"){this.sortType=st[this.sortType];}
@@ -877,12 +846,6 @@
trans.timeoutId=this.handleFailure.defer(this.timeout,this,[trans]);var script=document.createElement("script");script.setAttribute("src",url);script.setAttribute("type","text/javascript");script.setAttribute("id",trans.scriptId);this.head.appendChild(script);this.trans=trans;}else{callback.call(scope||this,null,arg,false);}},isLoading:function(){return this.trans?true:false;},abort:function(){if(this.isLoading()){this.destroyTrans(this.trans);}},destroyTrans:function(trans,isLoaded){this.head.removeChild(document.getElementById(trans.scriptId));clearTimeout(trans.timeoutId);if(isLoaded){window[trans.cb]=undefined;try{delete window[trans.cb];}catch(e){}}else{window[trans.cb]=function(){window[trans.cb]=undefined;try{delete window[trans.cb];}catch(e){}};}},handleResponse:function(o,trans){this.trans=false;this.destroyTrans(trans,true);var result;try{result=trans.reader.readRecords(o);}catch(e){this.fireEvent("loadexception",this,o,trans.arg,e);trans.callback.call(trans.scope||window,null,trans.arg,false);return;}
this.fireEvent("load",this,o,trans.arg);trans.callback.call(trans.scope||window,result,trans.arg,true);},handleFailure:function(trans){this.trans=false;this.destroyTrans(trans,false);this.fireEvent("loadexception",this,null,trans.arg);trans.callback.call(trans.scope||window,null,trans.arg,false);}});
-Ext.data.DirectProxy=function(config){Ext.apply(this,config);if(typeof this.paramOrder=='string'){this.paramOrder=this.paramOrder.split(/[\s,|]/);}
-Ext.data.DirectProxy.superclass.constructor.call(this);};Ext.extend(Ext.data.DirectProxy,Ext.data.DataProxy,{paramOrder:undefined,paramsAsHash:true,directFn:undefined,load:function(params,reader,cb,scope,arg){if(this.fireEvent("beforeload",this,params)!==false){var args=[];if(this.paramOrder){for(var i=0,len=this.paramOrder.length;i<len;i++){args.push(params[this.paramOrder[i]]);}}else if(this.paramsAsHash){args.push(params);}
-args.push({callback:function(result,e){if(!e.success){this.fireEvent("loadexception",this,e,result);cb.call(scope,null,arg,false);return;}
-var rs;try{rs=reader.readRecords(result);}catch(ex){this.fireEvent("loadexception",this,e,result,ex);cb.call(scope,null,arg,false);return;}
-this.fireEvent("load",this,e,arg);cb.call(scope,rs,arg,true);},scope:this});this.directFn.apply(window,args);}else{cb.call(scope||this,null,arg,false);}}});
-
Ext.data.JsonReader=function(meta,recordType){meta=meta||{};Ext.data.JsonReader.superclass.constructor.call(this,meta,recordType||meta.fields);};Ext.extend(Ext.data.JsonReader,Ext.data.DataReader,{read:function(response){var json=response.responseText;var o=eval("("+json+")");if(!o){throw{message:"JsonReader.read: Json object not found"};}
return this.readRecords(o);},onMetaChange:function(meta,recordType,o){},simpleAccess:function(obj,subsc){return obj[subsc];},getJsonAccessor:function(){var re=/[\[\.]/;return function(expr){try{return(re.test(expr))?new Function("obj","return obj."+expr):function(obj){return obj[expr];};}catch(e){}
return Ext.emptyFn;};}(),readRecords:function(o){this.jsonData=o;if(o.metaData){delete this.ef;this.meta=o.metaData;this.recordType=Ext.data.Record.create(o.metaData.fields);this.onMetaChange(this.meta,this.recordType,o);}
@@ -909,6 +872,48 @@
var totalRecords=records.length;if(s.totalProperty){var v=parseInt(this.getTotal(o),10);if(!isNaN(v)){totalRecords=v;}}
return{records:records,totalRecords:totalRecords};}});
+Ext.Direct=Ext.extend(Ext.util.Observable,{exceptions:{TRANSPORT:'xhr',PARSE:'parse',LOGIN:'login',SERVER:'exception'},constructor:function(){this.addEvents('event','exception');this.transactions={};this.providers={};},addProvider:function(provider){var a=arguments;if(a.length>1){for(var i=0,len=a.length;i<len;i++){this.addProvider(a[i]);}
+return;}
+if(!provider.events){provider=new Ext.Direct.PROVIDERS[provider.type](provider);}
+provider.id=provider.id||Ext.id;this.providers[provider.id]=provider;provider.on('data',this.onProviderData,this);provider.on('exception',this.onProviderException,this);if(!provider.isConnected()){provider.connect();}
+return provider;},getProvider:function(id){return this.providers[id];},removeProvider:function(id){var provider=id.id?id:providers[id.id];provider.un('data',this.onProviderData,this);provider.un('exception',this.onProviderException,this);delete this.providers[provider.id];return provider;},addTransaction:function(t){this.transactions[t.tid]=t;return t;},removeTransaction:function(t){delete this.transactions[t.tid||t];return t;},getTransaction:function(tid){return this.transactions[tid.tid||tid];},onProviderData:function(provider,e){if(Ext.isArray(e)){for(var i=0,len=e.length;i<len;i++){this.onProviderData(provider,e[i]);}
+return;}
+if(e.name&&e.name!='event'&&e.name!='exception'){this.fireEvent(e.name,e);}else if(e.type=='exception'){this.fireEvent('exception',e);}
+this.fireEvent('event',e,provider);},createEvent:function(response,extraProps){return new Ext.Direct.eventTypes[response.type](Ext.apply(response,extraProps));}});Ext.Direct=new Ext.Direct();Ext.Direct.TID=1;Ext.Direct.PROVIDERS={};
+
+Ext.Direct.Transaction=function(config){Ext.apply(this,config);this.tid=++Ext.Direct.TID;this.retryCount=0;}
+Ext.Direct.Transaction.prototype={send:function(){this.provider.queueTransaction(this);},retry:function(){this.retryCount++;this.send();},getProvider:function(){return this.provider;}};
+
+Ext.Direct.Event=function(config){Ext.apply(this,config);}
+Ext.Direct.Event.prototype={status:true,getData:function(){return this.data;}};Ext.Direct.RemotingEvent=Ext.extend(Ext.Direct.Event,{type:'rpc',getTransaction:function(){return this.transaction||Ext.Direct.getTransaction(this.tid);}});Ext.Direct.ExceptionEvent=Ext.extend(Ext.Direct.RemotingEvent,{status:false,type:'exception'});Ext.Direct.eventTypes={'rpc':Ext.Direct.RemotingEvent,'event':Ext.Direct.Event,'exception':Ext.Direct.ExceptionEvent};
+
+Ext.direct.Provider=Ext.extend(Ext.util.Observable,{priority:1,constructor:function(config){Ext.apply(this,config);this.addEvents('connect','disconnect','data','exception');Ext.direct.Provider.superclass.constructor.call(this,config);},isConnected:function(){return false;},connect:Ext.emptyFn,disconnect:Ext.emptyFn});
+
+Ext.direct.JsonProvider=Ext.extend(Ext.direct.Provider,{parseResponse:function(xhr){if(!Ext.isEmpty(xhr.responseText)){if(typeof xhr.responseText=='object'){return xhr.responseText;}
+return Ext.decode(xhr.responseText);}
+return null;},getEvents:function(xhr){var data=null;try{data=this.parseResponse(xhr);}catch(e){var event=new Ext.Direct.ExceptionEvent({data:e,xhr:xhr,code:Ext.Direct.exceptions.PARSE,message:'Error parsing json response: \n\n '+data})
+return[event];}
+var events=[];if(Ext.isArray(data)){for(var i=0,len=data.length;i<len;i++){events.push(Ext.Direct.createEvent(data[i]));}}else{events.push(Ext.Direct.createEvent(data));}
+return events;}});
+
+Ext.direct.PollingProvider=Ext.extend(Ext.direct.JsonProvider,{priority:3,interval:3000,constructor:function(config){Ext.direct.PollingProvider.superclass.constructor.call(this,config);this.addEvents('beforepoll','poll');},isConnected:function(){return!!this.pollTask;},connect:function(){if(this.url&&!this.pollTask){this.pollTask=Ext.TaskMgr.start({run:function(){if(this.fireEvent('beforepoll',this)!==false){if(typeof this.url=='function'){this.url(this.baseParams);}else{Ext.Ajax.request({url:this.url,callback:this.onData,scope:this,params:this.baseParams});}}},interval:this.interval,scope:this});this.fireEvent('connect',this);}else if(!this.url){throw'Error initializing PollingProvider, no url configured.';}},disconnect:function(){if(this.pollTask){Ext.TaskMgr.stop(this.pollTask);delete this.pollTask;this.fireEvent('disconnect',this);}},onData:function(opt,success,xhr){if(success){var events=this.getEvents(xhr);for(var i=0,len=events.length;i<len;i++){var e=events[i];this.fireEvent('data',this,e);}}else{var e=new Ext.Direct.ExceptionEvent({data:e,code:Ext.Direct.exceptions.TRANSPORT,message:'Unable to connect to the server.',xhr:xhr});this.fireEvent('data',this,e);}}});Ext.Direct.PROVIDERS['polling']=Ext.direct.PollingProvider;
+
+Ext.direct.RemotingProvider=Ext.extend(Ext.direct.JsonProvider,{priority:1,enableBuffer:10,maxRetries:1,constructor:function(config){Ext.direct.RemotingProvider.superclass.constructor.call(this,config);this.addEvents('beforecall','call');this.namespace=this.namespace||window;this.transactions={};this.callBuffer=[];},initAPI:function(){var o=this.actions;for(var c in o){var cls=this.namespace[c]||(this.namespace[c]={});var ms=o[c];for(var i=0,len=ms.length;i<len;i++){var m=ms[i];cls[m.name]=this.createMethod(c,m);}}},isConnected:function(){return!!this.connected;},connect:function(){if(this.url){this.initAPI();this.connected=true;this.fireEvent('connect',this);}else if(!this.url){throw'Error initializing RemotingProvider, no url configured.';}},disconnect:function(){if(this.connected){this.connected=false;this.fireEvent('disconnect',this);}},onData:function(opt,success,xhr){if(success){var events=this.getEvents(xhr);for(var i=0,len=events.length;i<len;i++){var e=events[i];var t=e.getTransaction();this.fireEvent('data',this,e);if(t){this.doCallback(t,e,true);Ext.Direct.removeTransaction(t);}}}else{var ts=[].concat(opt.ts);for(var i=0,len=ts.length;i<len;i++){var t=this.getTransaction(opt.ts[i]);if(t&&t.retryCount<this.maxRetries){t.retry();}else{var e=new Ext.Direct.ExceptionEvent({data:e,transaction:t,code:Ext.Direct.exceptions.TRANSPORT,message:'Unable to connect to the server.',xhr:xhr});this.fireEvent('data',this,e);if(t){this.doCallback(t,e,false);Ext.Direct.removeTransaction(t);}}}}},getCallData:function(t){return{action:t.action,method:t.method,data:t.data,type:'rpc',tid:t.tid};},doSend:function(data){var o={url:this.url,callback:this.onData,scope:this};var callData;if(Ext.isArray(data)){callData=[];for(var i=0,len=data.length;i<len;i++){callData.push(this.getCallData(data[i]));}}else{callData=this.getCallData(data);}
+if(this.enableUrlEncode){var params={};params[typeof this.enableUrlEncode=='string'?this.enableUrlEncode:'data']=Ext.encode(callData);o.params=params;}else{o.jsonData=callData;}
+Ext.Ajax.request(o);},combineAndSend:function(){var len=this.callBuffer.length;if(len>0){this.doSend(len==1?this.callBuffer[0]:this.callBuffer);this.callBuffer=[];}},queueTransaction:function(t){this.callBuffer.push(t);if(this.enableBuffer){if(!this.callTask){this.callTask=new Ext.util.DelayedTask(this.combineAndSend,this);}
+this.callTask.delay(typeof this.enableBuffer=='number'?this.enableBuffer:10);}else{this.combineAndSend();}},doCall:function(c,m,args){var data=null,hs=args[m.len],scope=args[m.len+1];if(m.len!==0){data=args.slice(0,m.len);}
+var t=new Ext.Direct.Transaction({provider:this,args:args,action:c,method:m.name,data:data,cb:scope&&typeof hs=='function'?hs.createDelegate(scope):hs});if(this.fireEvent('beforecall',this,t)!==false){Ext.Direct.addTransaction(t);this.queueTransaction(t);this.fireEvent('call',this,t);}},doForm:function(c,m,form,callback,scope){var t=new Ext.Direct.Transaction({provider:this,action:c,method:m.name,args:[form,callback,scope],cb:scope&&typeof callback=='function'?callback.createDelegate(scope):callback});if(this.fireEvent('beforecall',this,t)!==false){Ext.Direct.addTransaction(t);form=Ext.getDom(form);var isUpload=String(form.getAttribute("enctype")).toLowerCase()=='multipart/form-data';var params={extTID:t.tid,extAction:c,extMethod:m.name,extUpload:String(isUpload)};if(callback&&typeof callback=='object'){Ext.apply(params,callback.params);}
+Ext.Ajax.request({url:this.url,params:params,callback:this.onData,scope:this,form:form,isUpload:isUpload,ts:t});}},createMethod:function(c,m){var f;if(!m.formHandler){f=function(){this.doCall(c,m,Array.prototype.slice.call(arguments,0));}.createDelegate(this);}else{f=function(form,callback,scope){this.doForm(c,m,form,callback,scope);}.createDelegate(this);}
+f.directCfg={action:c,method:m};return f;},getTransaction:function(opt){return opt&&opt.tid?Ext.Direct.getTransaction(opt.tid):null;},doCallback:function(t,e){var fn=e.status?'success':'failure';if(t&&t.cb){var hs=t.cb;var result=e.result||e.data;if(typeof hs=='function'){hs(result,e);}else{Ext.callback(hs[fn],hs.scope,[result,e]);Ext.callback(hs.callback,hs.scope,[result,e]);}}}});Ext.Direct.PROVIDERS['remoting']=Ext.direct.RemotingProvider;
+
+Ext.data.DirectProxy=function(config){Ext.apply(this,config);if(typeof this.paramOrder=='string'){this.paramOrder=this.paramOrder.split(/[\s,|]/);}
+Ext.data.DirectProxy.superclass.constructor.call(this);};Ext.extend(Ext.data.DirectProxy,Ext.data.DataProxy,{paramOrder:undefined,paramsAsHash:true,directFn:undefined,load:function(params,reader,cb,scope,arg){if(this.fireEvent("beforeload",this,params)!==false){var args=[];if(this.paramOrder){for(var i=0,len=this.paramOrder.length;i<len;i++){args.push(params[this.paramOrder[i]]);}}else if(this.paramsAsHash){args.push(params);}
+args.push({callback:function(result,e){if(!e.status){this.fireEvent("loadexception",this,e,result);cb.call(scope,null,arg,false);return;}
+var rs;try{rs=reader.readRecords(result);}catch(ex){this.fireEvent("loadexception",this,e,result,ex);cb.call(scope,null,arg,false);return;}
+this.fireEvent("load",this,e,arg);cb.call(scope,rs,arg,true);},scope:this});this.directFn.apply(window,args);}else{cb.call(scope||this,null,arg,false);}}});
+
+Ext.data.DirectStore=function(c){var pcfg=Ext.copyTo({},c,'paramOrder,paramsAsHash,directFn');Ext.data.DirectStore.superclass.constructor.call(this,Ext.apply(c,{proxy:new Ext.data.DirectProxy(pcfg),reader:new Ext.data.JsonReader(c,c.fields)}));};Ext.extend(Ext.data.DirectStore,Ext.data.Store);
+
Ext.data.Tree=function(root){this.nodeHash={};this.root=null;if(root){this.setRootNode(root);}
this.addEvents("append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert");Ext.data.Tree.superclass.constructor.call(this);};Ext.extend(Ext.data.Tree,Ext.util.Observable,{pathSeparator:"/",proxyNodeEvent:function(){return this.fireEvent.apply(this,arguments);},getRootNode:function(){return this.root;},setRootNode:function(node){this.root=node;node.ownerTree=this;node.isRoot=true;this.registerNode(node);return node;},getNodeById:function(id){return this.nodeHash[id];},registerNode:function(node){this.nodeHash[node.id]=node;},unregisterNode:function(node){delete this.nodeHash[node.id];},toString:function(){return"[Tree"+(this.id?" "+this.id:"")+"]";}});Ext.data.Node=function(attributes){this.attributes=attributes||{};this.leaf=this.attributes.leaf;this.id=this.attributes.id;if(!this.id){this.id=Ext.id(null,"ynode-");this.attributes.id=this.id;}
this.childNodes=[];if(!this.childNodes.indexOf){this.childNodes.indexOf=function(o){for(var i=0,len=this.length;i<len;i++){if(this[i]==o)return i;}
@@ -1142,18 +1147,18 @@
if(Ext.isIE&&Ext.isStrict){target.repaint();}},destroy:function(){var r=['north','south','east','west'];for(var i=0;i<r.length;i++){var region=this[r[i]];if(region){if(region.destroy){region.destroy();}else if(region.split){region.split.destroy(true);}}}
Ext.layout.BorderLayout.superclass.destroy.call(this);}});Ext.layout.BorderLayout.Region=function(layout,config,pos){Ext.apply(this,config);this.layout=layout;this.position=pos;this.state={};if(typeof this.margins=='string'){this.margins=this.layout.parseMargins(this.margins);}
this.margins=Ext.applyIf(this.margins||{},this.defaultMargins);if(this.collapsible){if(typeof this.cmargins=='string'){this.cmargins=this.layout.parseMargins(this.cmargins);}
-if(this.collapseMode=='mini'&&!this.cmargins){this.cmargins={left:0,top:0,right:0,bottom:0};}else{this.cmargins=Ext.applyIf(this.cmargins||{},pos=='north'||pos=='south'?this.defaultNSCMargins:this.defaultEWCMargins);}}};Ext.layout.BorderLayout.Region.prototype={collapsible:false,split:false,floatable:true,minWidth:50,minHeight:50,defaultMargins:{left:0,top:0,right:0,bottom:0},defaultNSCMargins:{left:5,top:5,right:5,bottom:5},defaultEWCMargins:{left:5,top:0,right:5,bottom:0},isCollapsed:false,render:function(ct,p){this.panel=p;p.el.enableDisplayMode();this.targetEl=ct;this.el=p.el;var gs=p.getState,ps=this.position;p.getState=function(){return Ext.apply(gs.call(p)||{},this.state);}.createDelegate(this);if(ps!='center'){p.allowQueuedExpand=false;p.on({beforecollapse:this.beforeCollapse,collapse:this.onCollapse,beforeexpand:this.beforeExpand,expand:this.onExpand,hide:this.onHide,show:this.onShow,scope:this});if(this.collapsible){p.collapseEl='el';p.slideAnchor=this.getSlideAnchor();}
+if(this.collapseMode=='mini'&&!this.cmargins){this.cmargins={left:0,top:0,right:0,bottom:0};}else{this.cmargins=Ext.applyIf(this.cmargins||{},pos=='north'||pos=='south'?this.defaultNSCMargins:this.defaultEWCMargins);}}};Ext.layout.BorderLayout.Region.prototype={collapsible:false,split:false,floatable:true,minWidth:50,minHeight:50,defaultMargins:{left:0,top:0,right:0,bottom:0},defaultNSCMargins:{left:5,top:5,right:5,bottom:5},defaultEWCMargins:{left:5,top:0,right:5,bottom:0},floatingZIndex:100,isCollapsed:false,render:function(ct,p){this.panel=p;p.el.enableDisplayMode();this.targetEl=ct;this.el=p.el;var gs=p.getState,ps=this.position;p.getState=function(){return Ext.apply(gs.call(p)||{},this.state);}.createDelegate(this);if(ps!='center'){p.allowQueuedExpand=false;p.on({beforecollapse:this.beforeCollapse,collapse:this.onCollapse,beforeexpand:this.beforeExpand,expand:this.onExpand,hide:this.onHide,show:this.onShow,scope:this});if(this.collapsible){p.collapseEl='el';p.slideAnchor=this.getSlideAnchor();}
if(p.tools&&p.tools.toggle){p.tools.toggle.addClass('x-tool-collapse-'+ps);p.tools.toggle.addClassOnOver('x-tool-collapse-'+ps+'-over');}}},getCollapsedEl:function(){if(!this.collapsedEl){if(!this.toolTemplate){var tt=new Ext.Template('<div class="x-tool x-tool-{id}"> </div>');tt.disableFormats=true;tt.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=tt;}
this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+'-xcollapsed'});this.collapsedEl.enableDisplayMode('block');if(this.collapseMode=='mini'){this.collapsedEl.addClass('x-layout-cmini-'+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:" "});this.miniCollapsedEl.addClassOnOver('x-layout-mini-over');this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on('click',this.onExpandClick,this,{stopEvent:true});}else{var t=this.toolTemplate.append(this.collapsedEl.dom,{id:'expand-'+this.position},true);t.addClassOnOver('x-tool-expand-'+this.position+'-over');t.on('click',this.onExpandClick,this,{stopEvent:true});if(this.floatable!==false){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.collapseClick,this);}}}
return this.collapsedEl;},onExpandClick:function(e){if(this.isSlid){this.afterSlideIn();this.panel.expand(false);}else{this.panel.expand();}},onCollapseClick:function(e){this.panel.collapse();},beforeCollapse:function(p,animate){this.lastAnim=animate;if(this.splitEl){this.splitEl.hide();}
this.getCollapsedEl().show();this.panel.el.setStyle('z-index',100);this.isCollapsed=true;this.layout.layout();},onCollapse:function(animate){this.panel.el.setStyle('z-index',1);if(this.lastAnim===false||this.panel.animCollapse===false){this.getCollapsedEl().dom.style.visibility='visible';}else{this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:.2});}
this.state.collapsed=true;this.panel.saveState();},beforeExpand:function(animate){var c=this.getCollapsedEl();this.el.show();if(this.position=='east'||this.position=='west'){this.panel.setSize(undefined,c.getHeight());}else{this.panel.setSize(c.getWidth(),undefined);}
-c.hide();c.dom.style.visibility='hidden';this.panel.el.setStyle('z-index',100);},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show();}
+c.hide();c.dom.style.visibility='hidden';this.panel.el.setStyle('z-index',this.floatingZIndex);},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show();}
this.layout.layout();this.panel.el.setStyle('z-index',1);this.state.collapsed=false;this.panel.saveState();},collapseClick:function(e){if(this.isSlid){e.stopPropagation();this.slideIn();}else{e.stopPropagation();this.slideOut();}},onHide:function(){if(this.isCollapsed){this.getCollapsedEl().hide();}else if(this.splitEl){this.splitEl.hide();}},onShow:function(){if(this.isCollapsed){this.getCollapsedEl().show();}else if(this.splitEl){this.splitEl.show();}},isVisible:function(){return!this.panel.hidden;},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins;},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize();},setPanel:function(panel){this.panel=panel;},getMinWidth:function(){return this.minWidth;},getMinHeight:function(){return this.minHeight;},applyLayoutCollapsed:function(box){var ce=this.getCollapsedEl();ce.setLeftTop(box.x,box.y);ce.setSize(box.width,box.height);},applyLayout:function(box){if(this.isCollapsed){this.applyLayoutCollapsed(box);}else{this.panel.setPosition(box.x,box.y);this.panel.setSize(box.width,box.height);}},beforeSlide:function(){this.panel.beforeEffect();},afterSlide:function(){this.panel.afterEffect();},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){var st=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={"mouseout":function(e){if(!e.within(this.el,true)){st.delay(500);}},"mouseover":function(e){st.cancel();},scope:this};}
this.el.on(this.autoHideHd);}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover);}},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this);},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return;}
this.isSlid=true;var ts=this.panel.tools;if(ts&&ts.toggle){ts.toggle.hide();}
this.el.show();if(this.position=='east'||this.position=='west'){this.panel.setSize(undefined,this.collapsedEl.getHeight());}else{this.panel.setSize(this.collapsedEl.getWidth(),undefined);}
-this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",102);if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);},scope:this,block:true});}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var ts=this.panel.tools;if(ts&&ts.toggle){ts.toggle.show();}},slideIn:function(cb){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(cb);return;}
+this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",this.floatingZIndex+2);if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);},scope:this,block:true});}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var ts=this.panel.tools;if(ts&&ts.toggle){ts.toggle.show();}},slideIn:function(cb){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(cb);return;}
this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide();this.afterSlide();this.afterSlideIn();Ext.callback(cb);},scope:this,block:true});}else{this.el.hide();this.afterSlideIn();}},slideInIf:function(e){if(!e.within(this.el)){this.slideIn();}},anchors:{"west":"left","east":"right","north":"top","south":"bottom"},sanchors:{"west":"l","east":"r","north":"t","south":"b"},canchors:{"west":"tl-tr","east":"tr-tl","north":"tl-bl","south":"bl-tl"},getAnchor:function(){return this.anchors[this.position];},getCollapseAnchor:function(){return this.canchors[this.position];},getSlideAnchor:function(){return this.sanchors[this.position];},getAlignAdj:function(){var cm=this.cmargins;switch(this.position){case"west":return[0,0];break;case"east":return[0,0];break;case"north":return[0,0];break;case"south":return[0,0];break;}},getExpandAdj:function(){var c=this.collapsedEl,cm=this.cmargins;switch(this.position){case"west":return[-(cm.right+c.getWidth()+cm.left),0];break;case"east":return[cm.right+c.getWidth()+cm.left,0];break;case"north":return[0,-(cm.top+cm.bottom+c.getHeight())];break;case"south":return[0,cm.top+cm.bottom+c.getHeight()];break;}}};Ext.layout.BorderLayout.SplitRegion=function(layout,config,pos){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,layout,config,pos);this.applyLayout=this.applyFns[pos];};Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:'getVMaxSize',minProp:'minHeight',maxProp:'maxHeight'},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:'getVMaxSize',minProp:'minHeight',maxProp:'maxHeight'},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:'getHMaxSize',minProp:'minWidth',maxProp:'maxWidth'},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:'getHMaxSize',minProp:'minWidth',maxProp:'maxWidth'}},applyFns:{west:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
var sd=this.splitEl.dom,s=sd.style;this.panel.setPosition(box.x,box.y);var sw=sd.offsetWidth;s.left=(box.x+box.width-sw)+'px';s.top=(box.y)+'px';s.height=Math.max(0,box.height)+'px';this.panel.setSize(box.width-sw,box.height);},east:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
var sd=this.splitEl.dom,s=sd.style;var sw=sd.offsetWidth;this.panel.setPosition(box.x+sw,box.y);s.left=(box.x)+'px';s.top=(box.y)+'px';s.height=Math.max(0,box.height)+'px';this.panel.setSize(box.width-sw,box.height);},north:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
@@ -1171,7 +1176,7 @@
if(ct.labelAlign=='top'){this.labelStyle="width:auto;";this.labelAdjust=0;this.elementStyle="padding-left:0;";}}
if(!this.fieldTpl){var t=new Ext.Template('<div class="x-form-item {5}" tabIndex="-1">','<label for="{0}" style="{2}" class="x-form-item-label">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div><div class="{6}"></div>','</div>');t.disableFormats=true;t.compile();Ext.layout.FormLayout.prototype.fieldTpl=t;}},renderItem:function(c,position,target){if(c&&!c.rendered&&(c.isFormField||c.fieldLabel)&&c.inputType!='hidden'){var args=[c.id,c.fieldLabel,c.labelStyle||this.labelStyle||'',this.elementStyle||'',typeof c.labelSeparator=='undefined'?this.labelSeparator:c.labelSeparator,(c.itemCls||this.container.itemCls||'')+(c.hideLabel?' x-hide-label':''),c.clearCls||'x-form-clear-left'];if(typeof position=='number'){position=target.dom.childNodes[position]||null;}
if(position){this.fieldTpl.insertBefore(position,args);}else{this.fieldTpl.append(target,args);}
-c.render('x-form-el-'+c.id);}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments);}},adjustWidthAnchor:function(value,comp){return value-(comp.isFormField?(comp.hideLabel?0:this.labelAdjust):0);},isValidParent:function(c,target){return true;}});Ext.Container.LAYOUTS['form']=Ext.layout.FormLayout;
+c.render('x-form-el-'+c.id);}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments);}},adjustWidthAnchor:function(value,comp){return value-(comp.isFormField||comp.fieldLabel?(comp.hideLabel?0:this.labelAdjust):0);},isValidParent:function(c,target){return true;}});Ext.Container.LAYOUTS['form']=Ext.layout.FormLayout;
Ext.layout.Accordion=Ext.extend(Ext.layout.FitLayout,{fill:true,autoWidth:true,titleCollapse:true,hideCollapseTool:false,collapseFirst:false,animate:false,sequence:false,activeOnTop:false,renderItem:function(c){if(this.animate===false){c.animCollapse=false;}
c.collapsible=true;if(this.autoWidth){c.autoWidth=true;}
@@ -1248,7 +1253,7 @@
if(this.tools){var ts=this.tools;this.tools={};this.addTool.apply(this,ts);}else{this.tools={};}
if(this.buttons&&this.buttons.length>0){this.fbar=new Ext.Toolbar({items:this.buttons,toolbarCls:'x-panel-fbar'});}
if(this.fbar){this.fbar=Ext.create(this.fbar,'toolbar');if(this.fbar.items){this.fbar.items.each(function(c){c.minWidth=this.minButtonWidth;},this);}
-this.fbar.toolbarCls='x-panel-fbar';var bct=this.footer.createChild({cls:'x-panel-btns x-panel-btns-'+this.buttonAlign});this.fbar.render(bct);bct.createChild({cls:'x-clear'});}
+this.fbar.toolbarCls='x-panel-fbar';var bct=this.footer.createChild({cls:'x-panel-btns x-panel-btns-'+this.buttonAlign});this.fbar.ownerCt=this;this.fbar.render(bct);bct.createChild({cls:'x-clear'});}
if(this.tbar&&this.topToolbar){if(Ext.isArray(this.topToolbar)){this.topToolbar=new Ext.Toolbar(this.topToolbar);}else if(!this.topToolbar.events){this.topToolbar=Ext.create(this.topToolbar,'toolbar');}
this.topToolbar.ownerCt=this;this.topToolbar.render(this.tbar);}
if(this.bbar&&this.bottomToolbar){if(Ext.isArray(this.bottomToolbar)){this.bottomToolbar=new Ext.Toolbar(this.bottomToolbar);}else if(!this.bottomToolbar.events){this.bottomToolbar=Ext.create(this.bottomToolbar,'toolbar');}
@@ -1259,7 +1264,9 @@
for(var i=0,a=arguments,len=a.length;i<len;i++){var tc=a[i];if(!this.tools[tc.id]){var overCls='x-tool-'+tc.id+'-over';var t=this.toolTemplate.insertFirst((tc.align!=='left')?this[this.toolTarget]:this[this.toolTarget].child('span'),tc,true);this.tools[tc.id]=t;t.enableDisplayMode('block');t.on('click',this.createToolHandler(t,tc,overCls,this));if(tc.on){t.on(tc.on);}
if(tc.hidden){t.hide();}
if(tc.qtip){if(typeof tc.qtip=='object'){Ext.QuickTips.register(Ext.apply({target:t.id},tc.qtip));}else{t.dom.qtip=tc.qtip;}}
-t.addClassOnOver(overCls);}}},onShow:function(){if(this.floating){return this.el.show();}
+t.addClassOnOver(overCls);}}},doLayout:function(shallow){Ext.Panel.superclass.doLayout.call(this,shallow);if(this.topToolbar){this.topToolbar.doLayout();}
+if(this.bottomToolbar){this.bottomToolbar.doLayout();}
+if(this.fbar){this.fbar.doLayout();}},onShow:function(){if(this.floating){return this.el.show();}
Ext.Panel.superclass.onShow.call(this);},onHide:function(){if(this.floating){return this.el.hide();}
Ext.Panel.superclass.onHide.call(this);},createToolHandler:function(t,tc,overCls,panel){return function(e){t.removeClass(overCls);e.stopEvent();if(tc.handler){tc.handler.call(tc.scope||t,e,t,panel);}};},afterRender:function(){if(this.floating&&!this.hidden&&!this.initHidden){this.el.show();}
if(this.title){this.setTitle(this.title);}
@@ -1274,10 +1281,11 @@
var doAnim=animate===true||(animate!==false&&this.animCollapse);this.beforeEffect();this.onCollapse(doAnim,animate);return this;},onCollapse:function(doAnim,animArg){if(doAnim){this[this.collapseEl].slideOut(this.slideAnchor,Ext.apply(this.createEffect(animArg||true,this.afterCollapse,this),this.collapseDefaults));}else{this[this.collapseEl].hide();this.afterCollapse();}},afterCollapse:function(){this.collapsed=true;this.el.addClass(this.collapsedCls);this.afterEffect();this.fireEvent('collapse',this);},expand:function(animate){if(!this.collapsed||this.el.hasFxBlock()||this.fireEvent('beforeexpand',this,animate)===false){return;}
var doAnim=animate===true||(animate!==false&&this.animCollapse);this.el.removeClass(this.collapsedCls);this.beforeEffect();this.onExpand(doAnim,animate);return this;},onExpand:function(doAnim,animArg){if(doAnim){this[this.collapseEl].slideIn(this.slideAnchor,Ext.apply(this.createEffect(animArg||true,this.afterExpand,this),this.expandDefaults));}else{this[this.collapseEl].show();this.afterExpand();}},afterExpand:function(){this.collapsed=false;this.afterEffect();this.fireEvent('expand',this);},toggleCollapse:function(animate){this[this.collapsed?'expand':'collapse'](animate);return this;},onDisable:function(){if(this.rendered&&this.maskDisabled){this.el.mask();}
Ext.Panel.superclass.onDisable.call(this);},onEnable:function(){if(this.rendered&&this.maskDisabled){this.el.unmask();}
-Ext.Panel.superclass.onEnable.call(this);},onResize:function(w,h){if(w!==undefined||h!==undefined){if(!this.collapsed){if(typeof w=='number'){w=this.adjustBodyWidth(w-this.getFrameWidth());this.body.setWidth(w);}else if(w=='auto'){this.body.setWidth(w);}
+Ext.Panel.superclass.onEnable.call(this);},onResize:function(w,h){if(w!==undefined||h!==undefined){if(!this.collapsed){if(typeof w=='number'){w=this.adjustBodyWidth(w-this.getFrameWidth());if(this.tbar){this.tbar.setWidth(w);if(this.topToolbar){this.topToolbar.setSize(w);}}
+if(this.bbar){this.bbar.setWidth(w);if(this.bottomToolbar){this.bottomToolbar.setSize(w);}}
+if(this.fbar){this.fbar.setSize(w-this.fbar.container.getFrameWidth('lr'));}
+this.body.setWidth(w);}else if(w=='auto'){this.body.setWidth(w);}
if(typeof h=='number'){h=this.adjustBodyHeight(h-this.getFrameHeight());this.body.setHeight(h);}else if(h=='auto'){this.body.setHeight(h);}
-if(this.tbar){this.tbar.setWidth(w);if(this.topToolbar){this.topToolbar.setSize(w);}}
-if(this.bbar){this.bbar.setWidth(w);if(this.bottomToolbar){this.bottomToolbar.setSize(w);}}
if(this.disabled&&this.el._mask){this.el._mask.setSize(this.el.dom.clientWidth,this.el.getHeight());}}else{this.queuedBodySize={width:w,height:h};if(!this.queuedExpand&&this.allowQueuedExpand!==false){this.queuedExpand=true;this.on('expand',function(){delete this.queuedExpand;this.onResize(this.queuedBodySize.width,this.queuedBodySize.height);this.doLayout();},this,{single:true});}}
this.fireEvent('bodyresize',this,w,h);}
this.syncShadow();},adjustBodyHeight:function(h){return h;},adjustBodyWidth:function(w){return w;},onPosition:function(){this.syncShadow();},getFrameWidth:function(){var w=this.el.getFrameWidth('lr');if(this.frame){var l=this.bwrap.dom.firstChild;w+=(Ext.fly(l).getFrameWidth('l')+Ext.fly(l.firstChild).getFrameWidth('r'));var mc=this.bwrap.dom.firstChild.firstChild.firstChild;w+=Ext.fly(mc).getFrameWidth('lr');}
@@ -1294,7 +1302,7 @@
if(useShim!==false&&this.el.useShim!==false){var layer=new Ext.Layer({shadow:false,useDisplay:true,constrain:false},el);layer.show();return layer;}else{return new Ext.Element(el);}},doAutoLoad:function(){this.body.load(typeof this.autoLoad=='object'?this.autoLoad:{url:this.autoLoad});}});Ext.reg('panel',Ext.Panel);
Ext.Window=Ext.extend(Ext.Panel,{baseCls:'x-window',resizable:true,draggable:true,closable:true,constrain:false,constrainHeader:false,plain:false,minimizable:false,maximizable:false,minHeight:100,minWidth:200,expandOnShow:true,closeAction:'close',collapsible:false,initHidden:true,monitorResize:true,elements:'header,body',frame:true,floating:true,initComponent:function(){Ext.Window.superclass.initComponent.call(this);this.addEvents('resize','maximize','minimize','restore');},getState:function(){return Ext.apply(Ext.Window.superclass.getState.call(this)||{},this.getBox());},onRender:function(ct,position){Ext.Window.superclass.onRender.call(this,ct,position);if(this.plain){this.el.addClass('x-window-plain');}
-this.focusEl=this.el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1",html:" "});this.focusEl.swallowEvent('click',true);this.proxy=this.el.createProxy("x-window-proxy");this.proxy.enableDisplayMode('block');if(this.modal){this.mask=this.container.createChild({cls:"ext-el-mask"},this.el.dom);this.mask.enableDisplayMode("block");this.mask.hide();}},initEvents:function(){Ext.Window.superclass.initEvents.call(this);if(this.animateTarget){this.setAnimateTarget(this.animateTarget);}
+this.focusEl=this.el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1",html:" "});this.focusEl.swallowEvent('click',true);this.proxy=this.el.createProxy("x-window-proxy");this.proxy.enableDisplayMode('block');if(this.modal){this.mask=this.container.createChild({cls:"ext-el-mask"},this.el.dom);this.mask.enableDisplayMode("block");this.mask.hide();this.mask.on('click',this.focus,this);}},initEvents:function(){Ext.Window.superclass.initEvents.call(this);if(this.animateTarget){this.setAnimateTarget(this.animateTarget);}
if(this.resizable){this.resizer=new Ext.Resizable(this.el,{minWidth:this.minWidth,minHeight:this.minHeight,handles:this.resizeHandles||"all",pinned:true,resizeElement:this.resizerAction});this.resizer.window=this;this.resizer.on("beforeresize",this.beforeResize,this);}
if(this.draggable){this.header.addClass("x-window-draggable");}
this.initTools();this.el.on("mousedown",this.toFront,this);this.manager=this.manager||Ext.WindowMgr;this.manager.register(this);this.hidden=true;if(this.maximized){this.maximized=false;this.maximize();}
@@ -1304,8 +1312,8 @@
if(this.maximizable){this.addTool({id:'maximize',handler:this.maximize.createDelegate(this,[])});this.addTool({id:'restore',handler:this.restore.createDelegate(this,[]),hidden:true});this.header.on('dblclick',this.toggleMaximize,this);}
if(this.closable){this.addTool({id:'close',handler:this[this.closeAction].createDelegate(this,[])});}},resizerAction:function(){var box=this.proxy.getBox();this.proxy.hide();this.window.handleResize(box);return box;},beforeResize:function(){this.resizer.minHeight=Math.max(this.minHeight,this.getFrameHeight()+40);this.resizer.minWidth=Math.max(this.minWidth,this.getFrameWidth()+40);this.resizeBox=this.el.getBox();},updateHandles:function(){if(Ext.isIE&&this.resizer){this.resizer.syncHandleHeight();this.el.repaint();}},handleResize:function(box){var rz=this.resizeBox;if(rz.x!=box.x||rz.y!=box.y){this.updateBox(box);}else{this.setSize(box);}
this.focus();this.updateHandles();this.saveState();if(this.layout){this.doLayout();}
-this.fireEvent("resize",this,box.width,box.height);},focus:function(){var f=this.focusEl,db=this.defaultButton,t=typeof db;if(t!='undefined'){if(t=='number'){f=this.buttons[db];}else if(t=='string'){f=Ext.getCmp(db);}else{f=db;}}
-f.focus.defer(10,f);},setAnimateTarget:function(el){el=Ext.get(el);this.animateTarget=el;},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var xy=this.el.getAlignToXY(this.container,'c-c');var pos=this.el.translatePoints(xy[0],xy[1]);this.x=this.x===undefined?pos.left:this.x;this.y=this.y===undefined?pos.top:this.y;}
+this.fireEvent("resize",this,box.width,box.height);},focus:function(){var f=this.focusEl,db=this.defaultButton,t=typeof db;if(t!='undefined'){if(t=='number'&&this.fbar){f=this.fbar.items.get(db);}else if(t=='string'){f=Ext.getCmp(db);}else{f=db;}}
+f=f||this.focusEl;f.focus.defer(10,f);},setAnimateTarget:function(el){el=Ext.get(el);this.animateTarget=el;},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var xy=this.el.getAlignToXY(this.container,'c-c');var pos=this.el.translatePoints(xy[0],xy[1]);this.x=this.x===undefined?pos.left:this.x;this.y=this.y===undefined?pos.top:this.y;}
this.el.setLeftTop(this.x,this.y);if(this.expandOnShow){this.expand(false);}
if(this.modal){Ext.getBody().addClass("x-body-masked");this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.mask.show();}},show:function(animateTarget,cb,scope){if(!this.rendered){this.render(Ext.getBody());}
if(this.hidden===false){this.toFront();return;}
@@ -1609,7 +1617,9 @@
this.position=pos;this.rz=rz;this.el=this.tpl.append(rz.el.dom,[this.position],true);this.el.unselectable();if(transparent){this.el.setOpacity(0);}
this.el.on("mousedown",this.onMouseDown,this);if(!disableTrackOver){this.el.on("mouseover",this.onMouseOver,this);this.el.on("mouseout",this.onMouseOut,this);}};Ext.Resizable.Handle.prototype={afterResize:function(rz){},onMouseDown:function(e){this.rz.onMouseDown(this,e);},onMouseOver:function(e){this.rz.handleOver(this,e);},onMouseOut:function(e){this.rz.handleOut(this,e);},destroy:function(){Ext.destroy(this.el);this.el=null;}};
-Ext.Editor=function(field,config){this.field=field;Ext.Editor.superclass.constructor.call(this,config);};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey");},onRender:function(ct,position){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:ct,shim:this.shim,shadowOffset:4,id:this.id,constrain:this.constrain});this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!='title'){this.field.msgTarget='qtip';}
+Ext.Editor=function(field,config){if(field.field){this.field=Ext.create(field.field,'textfield');config=Ext.apply({},field);delete config.field;}else{this.field=field;}
+Ext.Editor.superclass.constructor.call(this,config);};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey");},onRender:function(ct,position){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:ct,shim:this.shim,shadowOffset:this.shadowOffset||4,id:this.id,constrain:this.constrain});if(this.zIndex){this.el.setZIndex(this.zIndex);}
+this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!='title'){this.field.msgTarget='qtip';}
this.field.inEditor=true;this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute('autocomplete','off');}
this.field.on("specialkey",this.onSpecialKey,this);if(this.swallowKeys){this.field.el.swallowEvent(['keydown','keypress']);}
this.field.show();this.field.on("blur",this.onBlur,this);if(this.field.grow){this.field.on("autosize",this.el.sync,this.el,{delay:1});}},onSpecialKey:function(field,e){var key=e.getKey();if(this.completeOnEnter&&key==e.ENTER){e.stopEvent();this.completeEdit();}else if(this.cancelOnEsc&&key==e.ESC){this.cancelEdit();}else{this.fireEvent('specialkey',field,e);}
@@ -1890,9 +1900,9 @@
return null;},setCheckedItem:function(groupId,itemId){var g=groups[groupId];if(g){for(var i=0,l=g.length;i<l;i++){if(g[i].id==itemId){g[i].setChecked(true);}}}
return null;}};}();
-Ext.menu.BaseItem=function(config){Ext.menu.BaseItem.superclass.constructor.call(this,config);this.addEvents('click','activate','deactivate');if(this.handler){this.on("click",this.handler,this.scope);}};Ext.extend(Ext.menu.BaseItem,Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,hideDelay:100,ctype:"Ext.menu.BaseItem",actionMode:"container",render:function(container,parentMenu){this.parentMenu=parentMenu;Ext.menu.BaseItem.superclass.render.call(this,container);this.container.menuItemId=this.itemId||this.id;},onRender:function(container,position){this.el=Ext.get(this.el);container.dom.appendChild(this.el.dom);},setHandler:function(handler,scope){if(this.handler){this.un("click",this.handler,this.scope);}
+Ext.menu.BaseItem=function(config){Ext.menu.BaseItem.superclass.constructor.call(this,config);this.addEvents('click','activate','deactivate');if(this.handler){this.on("click",this.handler,this.scope);}};Ext.extend(Ext.menu.BaseItem,Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,clickHideDelay:1,ctype:"Ext.menu.BaseItem",actionMode:"container",render:function(container,parentMenu){this.parentMenu=parentMenu;Ext.menu.BaseItem.superclass.render.call(this,container);this.container.menuItemId=this.itemId||this.id;},onRender:function(container,position){this.el=Ext.get(this.el);container.dom.appendChild(this.el.dom);},setHandler:function(handler,scope){if(this.handler){this.un("click",this.handler,this.scope);}
this.on("click",this.handler=handler,this.scope=scope);},onClick:function(e){if(!this.disabled&&this.fireEvent("click",this,e)!==false&&this.parentMenu.fireEvent("itemclick",this,e)!==false){this.handleClick(e);}else{e.stopEvent();}},activate:function(){if(this.disabled){return false;}
-var li=this.container;li.addClass(this.activeClass);this.region=li.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true;},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this);},shouldDeactivate:function(e){return!this.region||!this.region.contains(e.getPoint());},handleClick:function(e){if(this.hideOnClick){this.parentMenu.hide.defer(this.hideDelay,this.parentMenu,[true]);}},expandMenu:function(autoActivate){},hideMenu:function(){}});
+var li=this.container;li.addClass(this.activeClass);this.region=li.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true;},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this);},shouldDeactivate:function(e){return!this.region||!this.region.contains(e.getPoint());},handleClick:function(e){if(this.hideOnClick){this.parentMenu.hide.defer(this.clickHideDelay,this.parentMenu,[true]);}},expandMenu:function(autoActivate){},hideMenu:function(){}});
Ext.menu.TextItem=function(cfg){if(typeof cfg=='string'){cfg={text:cfg}}
Ext.menu.TextItem.superclass.constructor.call(this,cfg);};Ext.extend(Ext.menu.TextItem,Ext.menu.BaseItem,{hideOnClick:false,itemCls:"x-menu-text",onRender:function(){var s=document.createElement("span");s.className=this.itemCls;s.innerHTML=this.text;this.el=s;Ext.menu.TextItem.superclass.onRender.apply(this,arguments);}});
@@ -1930,7 +1940,7 @@
this.el.addClass('x-form-'+type);}
if(this.readOnly){this.el.dom.readOnly=true;}
if(this.tabIndex!==undefined){this.el.dom.setAttribute('tabIndex',this.tabIndex);}
-this.el.addClass([this.fieldClass,this.cls]);},getItemCt:function(){return this.el.up('.x-form-item',4);},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else if(this.el.dom.value.length>0&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value);}
+this.el.addClass([this.fieldClass,this.cls]);},getItemCt:function(){return this.el.up('.x-form-item',4);},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else if(!Ext.isEmpty(this.el.dom.value)&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value);}
this.originalValue=this.getValue();},isDirty:function(){if(this.disabled){return false;}
return String(this.getValue())!==String(this.originalValue);},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();this.initValue();},fireKey:function(e){if(e.isSpecialKey()){this.fireEvent("specialkey",this,e);}},reset:function(){this.setValue(this.originalValue);this.clearInvalid();},initEvents:function(){this.el.on(Ext.isIE||Ext.isSafari3?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);var o=this.inEditor&&Ext.isWindows&&Ext.isGecko?{buffer:10}:null;this.el.on("blur",this.onBlur,this,o);},onFocus:function(){if(!Ext.isOpera&&this.focusClass){this.el.addClass(this.focusClass);}
if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this);}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(!Ext.isOpera&&this.focusClass){this.el.removeClass(this.focusClass);}
@@ -1945,7 +1955,7 @@
this.fireEvent('valid',this);},getMessageHandler:function(){return Ext.form.MessageTargets[this.msgTarget];},getErrorCt:function(){return this.el.findParent('.x-form-element',5,true)||this.el.findParent('.x-form-field-wrap',5,true);},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,'tl-tr',[2,0]);},getRawValue:function(){var v=this.rendered?this.el.getValue():Ext.value(this.value,'');if(v===this.emptyText){v='';}
return v;},getValue:function(){if(!this.rendered){return this.value;}
var v=this.el.getValue();if(v===this.emptyText||v===undefined){v='';}
-return v;},setRawValue:function(v){return this.el.dom.value=(v===null||v===undefined?'':v);},setValue:function(v){this.value=v;if(this.rendered){this.el.dom.value=(v===null||v===undefined?'':v);this.validate();}},adjustSize:function(w,h){var s=Ext.form.Field.superclass.adjustSize.call(this,w,h);s.width=this.adjustWidth(this.el.dom.tagName,s.width);if(this.offsetCt){var ct=this.getItemCt();s.width-=ct.getFrameWidth('lr');s.height-=ct.getFrameWidth('tb');}
+return v;},setRawValue:function(v){return this.el.dom.value=(v===null||v===undefined?'':v);},setValue:function(v){this.value=v;if(this.rendered){this.el.dom.value=(v===null||v===undefined?'':v);this.validate();}},append:function(v){this.setValue([this.getValue(),v].join(''));},adjustSize:function(w,h){var s=Ext.form.Field.superclass.adjustSize.call(this,w,h);s.width=this.adjustWidth(this.el.dom.tagName,s.width);if(this.offsetCt){var ct=this.getItemCt();s.width-=ct.getFrameWidth('lr');s.height-=ct.getFrameWidth('tb');}
return s;},adjustWidth:function(tag,w){tag=tag.toLowerCase();if(typeof w=='number'&&!Ext.isSafari){if(Ext.isIE&&(tag=='input'||tag=='textarea')){if(tag=='input'&&!Ext.isStrict){return this.inEditor?w:w-3;}
if(tag=='input'&&Ext.isStrict){return w-(Ext.isIE6?4:1);}
if(tag=='textarea'&&Ext.isStrict){return w-2;}}else if(Ext.isOpera&&Ext.isStrict){if(tag=='input'){return w+2;}
@@ -2008,14 +2018,14 @@
Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:'x-form-date-trigger',showToday:true,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue);}
if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue);}
-this.ddMatch=null;this.initDisabledDays();},initDisabledDays:function(){if(this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i<dd.length;i++){re+=dd[i];if(i!=dd.length-1)re+="|";}
+this.disabledDatesRE=null;this.initDisabledDays();},initDisabledDays:function(){if(this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i<dd.length;i++){re+=dd[i];if(i!=dd.length-1)re+="|";}
this.disabledDatesRE=new RegExp(re+")");}},setDisabledDates:function(dd){this.disabledDates=dd;this.initDisabledDays();if(this.menu){this.menu.picker.setDisabledDates(this.disabledDatesRE);}},setDisabledDays:function(dd){this.disabledDays=dd;if(this.menu){this.menu.picker.setDisabledDays(dd);}},setMinValue:function(dt){this.minValue=(typeof dt=="string"?this.parseDate(dt):dt);if(this.menu){this.menu.picker.setMinDate(this.minValue);}},setMaxValue:function(dt){this.maxValue=(typeof dt=="string"?this.parseDate(dt):dt);if(this.menu){this.menu.picker.setMaxDate(this.maxValue);}},validateValue:function(value){value=this.formatDate(value);if(!Ext.form.DateField.superclass.validateValue.call(this,value)){return false;}
if(value.length<1){return true;}
var svalue=value;value=this.parseDate(value);if(!value){this.markInvalid(String.format(this.invalidText,svalue,this.format));return false;}
var time=value.getTime();if(this.minValue&&time<this.minValue.getTime()){this.markInvalid(String.format(this.minText,this.formatDate(this.minValue)));return false;}
if(this.maxValue&&time>this.maxValue.getTime()){this.markInvalid(String.format(this.maxText,this.formatDate(this.maxValue)));return false;}
if(this.disabledDays){var day=value.getDay();for(var i=0;i<this.disabledDays.length;i++){if(day===this.disabledDays[i]){this.markInvalid(this.disabledDaysText);return false;}}}
-var fvalue=this.formatDate(value);if(this.ddMatch&&this.ddMatch.test(fvalue)){this.markInvalid(String.format(this.disabledDatesText,fvalue));return false;}
+var fvalue=this.formatDate(value);if(this.disabledDatesRE&&this.disabledDatesRE.test(fvalue)){this.markInvalid(String.format(this.disabledDatesText,fvalue));return false;}
return true;},validateBlur:function(){return!this.menu||!this.menu.isVisible();},getValue:function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this))||"";},setValue:function(date){Ext.form.DateField.superclass.setValue.call(this,this.formatDate(this.parseDate(date)));},parseDate:function(value){if(!value||Ext.isDate(value)){return value;}
var v=Date.parseDate(value,this.format);if(!v&&this.altFormats){if(!this.altFormatsArray){this.altFormatsArray=this.altFormats.split("|");}
for(var i=0,len=this.altFormatsArray.length;i<len&&!v;i++){v=Date.parseDate(value,this.altFormatsArray[i]);}}
@@ -2023,8 +2033,13 @@
if(this.wrap){this.wrap.remove();}
Ext.form.DateField.superclass.onDestroy.call(this);},formatDate:function(date){return Ext.isDate(date)?date.dateFormat(this.format):date;},menuListeners:{select:function(m,d){this.setValue(d);},show:function(){this.onFocus();},hide:function(){this.focus.defer(10,this);var ml=this.menuListeners;this.menu.un("select",ml.select,this);this.menu.un("show",ml.show,this);this.menu.un("hide",ml.hide,this);}},onTriggerClick:function(){if(this.disabled){return;}
if(this.menu==null){this.menu=new Ext.menu.DateMenu();}
-Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.ddMatch,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?");},beforeBlur:function(){var v=this.parseDate(this.getRawValue());if(v){this.setValue(v);}}});Ext.reg('datefield',Ext.form.DateField);
+Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.disabledDatesRE,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?");},beforeBlur:function(){var v=this.parseDate(this.getRawValue());if(v){this.setValue(v);}}});Ext.reg('datefield',Ext.form.DateField);
+Ext.form.DisplayField=Ext.extend(Ext.form.Field,{validationEvent:false,validateOnBlur:false,defaultAutoCreate:{tag:"div"},fieldClass:"x-form-display-field",htmlEncode:false,initEvents:function(){},isValid:function(){return true;},validate:function(){return true;},getRawValue:function(){var v=this.rendered?this.el.dom.innerHTML:Ext.value(this.value,'');if(v===this.emptyText){v='';}
+if(this.htmlEncode){v=Ext.util.Format.htmlDecode(v);}
+return v;},getValue:function(){return this.getRawValue();},setRawValue:function(v){if(this.htmlEncode){v=Ext.util.Format.htmlEncode(v);}
+return this.rendered?(this.el.dom.innerHTML=(v===null||v===undefined?'':v)):(this.value=v);},setValue:function(v){this.setRawValue(v);}});Ext.reg('displayfield',Ext.form.DisplayField);
+
Ext.form.ComboBox=Ext.extend(Ext.form.TriggerField,{defaultAutoCreate:{tag:"input",type:"text",size:"24",autocomplete:"off"},listClass:'',selectedClass:'x-combo-selected',triggerClass:'x-form-arrow-trigger',shadow:'sides',listAlign:'tl-bl?',maxHeight:300,minHeight:90,triggerAction:'query',minChars:4,typeAhead:false,queryDelay:500,pageSize:0,selectOnFocus:false,queryParam:'query',loadingText:'Loading...',resizable:false,handleHeight:8,editable:true,allQuery:'',mode:'remote',minListWidth:70,forceSelection:false,typeAheadDelay:250,lazyInit:true,initComponent:function(){Ext.form.ComboBox.superclass.initComponent.call(this);this.addEvents('expand','collapse','beforeselect','select','beforequery');if(this.transform){this.allowDomMove=false;var s=Ext.getDom(this.transform);if(!this.hiddenName){this.hiddenName=s.name;}
if(!this.store){this.mode='local';var d=[],opts=s.options;for(var i=0,len=opts.length;i<len;i++){var o=opts[i];var value=(Ext.isIE?o.getAttributeNode('value').specified:o.hasAttribute('value'))?o.value:o.text;if(o.selected){this.value=value;}
d.push([value,o.text]);}
@@ -2114,8 +2129,8 @@
return this;},getValues:function(asString){var fs=Ext.lib.Ajax.serializeForm(this.el.dom);if(asString===true){return fs;}
return Ext.urlDecode(fs);},getFieldValues:function(){var o={};this.items.each(function(f){o[f.getName()]=f.getValue();});return o;},clearInvalid:function(){this.items.each(function(f){f.clearInvalid();});return this;},reset:function(){this.items.each(function(f){f.reset();});return this;},add:function(){this.items.addAll(Array.prototype.slice.call(arguments,0));return this;},remove:function(field){this.items.remove(field);return this;},render:function(){this.items.each(function(f){if(f.isFormField&&!f.rendered&&document.getElementById(f.id)){f.applyToMarkup(f.id);}});return this;},applyToFields:function(o){this.items.each(function(f){Ext.apply(f,o);});return this;},applyIfToFields:function(o){this.items.each(function(f){Ext.applyIf(f,o);});return this;},callFieldMethod:function(fnName,args){args=args||[];this.items.each(function(f){if(typeof f[fnName]=='function'){f[fnName].apply(f,args);}});return this;}});Ext.BasicForm=Ext.form.BasicForm;
-Ext.FormPanel=Ext.extend(Ext.Panel,{buttonAlign:'center',minButtonWidth:75,labelAlign:'left',monitorValid:false,monitorPoll:200,layout:'form',initComponent:function(){this.form=this.createForm();if(this.fileUpload){this.bodyCfg.enctype='multipart/form-data';}
-Ext.FormPanel.superclass.initComponent.call(this);this.bodyCfg={tag:'form',cls:this.baseCls+'-body',method:this.method||'POST',id:this.formId||Ext.id()};this.initItems();this.addEvents('clientvalidation');this.relayEvents(this.form,['beforeaction','actionfailed','actioncomplete']);},createForm:function(){delete this.initialConfig.listeners;return new Ext.form.BasicForm(null,this.initialConfig);},initFields:function(){var f=this.form;var formPanel=this;var fn=function(c){if(c.isFormField){f.add(c);}if(c.isFieldWrap){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});f.add(c.field);}else if(c.doLayout&&c!=formPanel){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});if(c.items){c.items.each(fn);}}}
+Ext.FormPanel=Ext.extend(Ext.Panel,{buttonAlign:'center',minButtonWidth:75,labelAlign:'left',monitorValid:false,monitorPoll:200,layout:'form',initComponent:function(){this.form=this.createForm();Ext.FormPanel.superclass.initComponent.call(this);this.bodyCfg={tag:'form',cls:this.baseCls+'-body',method:this.method||'POST',id:this.formId||Ext.id()};if(this.fileUpload){this.bodyCfg.enctype='multipart/form-data';}
+this.initItems();this.addEvents('clientvalidation');this.relayEvents(this.form,['beforeaction','actionfailed','actioncomplete']);},createForm:function(){delete this.initialConfig.listeners;return new Ext.form.BasicForm(null,this.initialConfig);},initFields:function(){var f=this.form;var formPanel=this;var fn=function(c){if(c.isFormField){f.add(c);}if(c.isFieldWrap){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});f.add(c.field);}else if(c.doLayout&&c!=formPanel){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});if(c.items){c.items.each(fn);}}}
this.items.each(fn);},getLayoutTarget:function(){return this.form.el;},getForm:function(){return this.form;},onRender:function(ct,position){this.initFields();Ext.FormPanel.superclass.onRender.call(this,ct,position);this.form.initEl(this.body);},beforeDestroy:function(){Ext.FormPanel.superclass.beforeDestroy.call(this);this.stopMonitoring();Ext.destroy(this.form);},initEvents:function(){Ext.FormPanel.superclass.initEvents.call(this);this.items.on('remove',this.onRemove,this);this.items.on('add',this.onAdd,this);if(this.monitorValid){this.startMonitoring();}},onAdd:function(ct,c){if(c.isFormField){this.form.add(c);}},onRemove:function(c){if(c.isFormField){Ext.destroy(c.container.up('.x-form-item'));this.form.remove(c);}},startMonitoring:function(){if(!this.bound){this.bound=true;Ext.TaskMgr.start({run:this.bindHandler,interval:this.monitorPoll||200,scope:this});}},stopMonitoring:function(){this.bound=false;},load:function(){this.form.load.apply(this.form,arguments);},onDisable:function(){Ext.FormPanel.superclass.onDisable.call(this);if(this.form){this.form.items.each(function(){this.disable();});}},onEnable:function(){Ext.FormPanel.superclass.onEnable.call(this);if(this.form){this.form.items.each(function(){this.enable();});}},bindHandler:function(){if(!this.bound){return false;}
var valid=true;this.form.items.each(function(f){if(!f.isValid(true)){valid=false;return false;}});if(this.buttons){for(var i=0,len=this.buttons.length;i<len;i++){var btn=this.buttons[i];if(btn.formBind===true&&btn.disabled===valid){btn.setDisabled(!valid);}}}
this.fireEvent('clientvalidation',this,valid);}});Ext.reg('form',Ext.FormPanel);Ext.form.FormPanel=Ext.FormPanel;
@@ -2228,9 +2243,9 @@
return this.fly(el).findParent(this.rowSelector,this.rowSelectorDepth);},findRowIndex:function(el){var r=this.findRow(el);return r?r.rowIndex:false;},getRow:function(row){return this.getRows()[row];},getCell:function(row,col){return this.getRow(row).getElementsByTagName('td')[col];},getHeaderCell:function(index){return this.mainHd.dom.getElementsByTagName('td')[index];},addRowClass:function(row,cls){var r=this.getRow(row);if(r){this.fly(r).addClass(cls);}},removeRowClass:function(row,cls){var r=this.getRow(row);if(r){this.fly(r).removeClass(cls);}},removeRow:function(row){Ext.removeNode(this.getRow(row));this.syncFocusEl(row);},removeRows:function(firstRow,lastRow){var bd=this.mainBody.dom;for(var rowIndex=firstRow;rowIndex<=lastRow;rowIndex++){Ext.removeNode(bd.childNodes[firstRow]);}
this.syncFocusEl(firstRow);},getScrollState:function(){var sb=this.scroller.dom;return{left:sb.scrollLeft,top:sb.scrollTop};},restoreScroll:function(state){var sb=this.scroller.dom;sb.scrollLeft=state.left;sb.scrollTop=state.top;},scrollToTop:function(){this.scroller.dom.scrollTop=0;this.scroller.dom.scrollLeft=0;},syncScroll:function(){this.syncHeaderScroll();var mb=this.scroller.dom;this.grid.fireEvent("bodyscroll",mb.scrollLeft,mb.scrollTop);},syncHeaderScroll:function(){var mb=this.scroller.dom;this.innerHd.scrollLeft=mb.scrollLeft;this.innerHd.scrollLeft=mb.scrollLeft;},updateSortIcon:function(col,dir){var sc=this.sortClasses;var hds=this.mainHd.select('td').removeClass(sc);hds.item(col).addClass(sc[dir=="DESC"?1:0]);},updateAllColumnWidths:function(){var tw=this.getTotalWidth();var clen=this.cm.getColumnCount();var ws=[];for(var i=0;i<clen;i++){ws[i]=this.getColumnWidth(i);}
this.innerHd.firstChild.firstChild.style.width=tw;for(var i=0;i<clen;i++){var hd=this.getHeaderCell(i);hd.style.width=ws[i];}
-var ns=this.getRows();for(var i=0,len=ns.length;i<len;i++){ns[i].style.width=tw;ns[i].firstChild.style.width=tw;var row=ns[i].firstChild.rows[0];for(var j=0;j<clen;j++){row.childNodes[j].style.width=ws[j];}}
-this.onAllColumnWidthsUpdated(ws,tw);},updateColumnWidth:function(col,width){var w=this.getColumnWidth(col);var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var hd=this.getHeaderCell(col);hd.style.width=w;var ns=this.getRows();for(var i=0,len=ns.length;i<len;i++){ns[i].style.width=tw;ns[i].firstChild.style.width=tw;ns[i].firstChild.rows[0].childNodes[col].style.width=w;}
-this.onColumnWidthUpdated(col,w,tw);},updateColumnHidden:function(col,hidden){var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var display=hidden?'none':'';var hd=this.getHeaderCell(col);hd.style.display=display;var ns=this.getRows();for(var i=0,len=ns.length;i<len;i++){ns[i].style.width=tw;ns[i].firstChild.style.width=tw;ns[i].firstChild.rows[0].childNodes[col].style.display=display;}
+var ns=this.getRows(),row,trow;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;trow=row.firstChild.rows[0];for(var j=0;j<clen;j++){trow.childNodes[j].style.width=ws[j];}}}
+this.onAllColumnWidthsUpdated(ws,tw);},updateColumnWidth:function(col,width){var w=this.getColumnWidth(col);var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var hd=this.getHeaderCell(col);hd.style.width=w;var ns=this.getRows(),row;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;row.firstChild.rows[0].childNodes[col].style.width=w;}}
+this.onColumnWidthUpdated(col,w,tw);},updateColumnHidden:function(col,hidden){var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var display=hidden?'none':'';var hd=this.getHeaderCell(col);hd.style.display=display;var ns=this.getRows(),row;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;row.firstChild.rows[0].childNodes[col].style.display=display;}}
this.onColumnHiddenUpdated(col,hidden,tw);delete this.lastViewWidth;this.layout();},doRender:function(cs,rs,ds,startRow,colCount,stripe){var ts=this.templates,ct=ts.cell,rt=ts.row,last=colCount-1;var tstyle='width:'+this.getTotalWidth()+';';var buf=[],cb,c,p={},rp={tstyle:tstyle},r;for(var j=0,len=rs.length;j<len;j++){r=rs[j];cb=[];var rowIndex=(j+startRow);for(var i=0;i<colCount;i++){c=cs[i];p.id=c.id;p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');p.attr=p.cellAttr="";p.value=c.renderer(r.data[c.name],p,r,rowIndex,i,ds);p.style=c.style;if(p.value==undefined||p.value==="")p.value=" ";if(r.dirty&&typeof r.modified[c.name]!=='undefined'){p.css+=' x-grid3-dirty-cell';}
cb[cb.length]=ct.apply(p);}
var alt=[];if(stripe&&((rowIndex+1)%2==0)){alt[0]="x-grid3-row-alt";}
@@ -2245,12 +2260,13 @@
if(g.enableHdMenu!==false){if(g.enableColumnHide!==false){this.colMenu=new Ext.menu.Menu({id:g.id+"-hcols-menu"});this.colMenu.on("beforeshow",this.beforeColMenuShow,this);this.colMenu.on("itemclick",this.handleHdMenuClick,this);}
this.hmenu=new Ext.menu.Menu({id:g.id+"-hctx"});this.hmenu.add({id:"asc",text:this.sortAscText,cls:"xg-hmenu-sort-asc"},{id:"desc",text:this.sortDescText,cls:"xg-hmenu-sort-desc"});if(g.enableColumnHide!==false){this.hmenu.add('-',{id:"columns",text:this.columnsText,menu:this.colMenu,iconCls:'x-cols-icon'});}
this.hmenu.on("itemclick",this.handleHdMenuClick,this);}
+if(g.trackMouseOver){this.mainBody.on("mouseover",this.onRowOver,this);this.mainBody.on("mouseout",this.onRowOut,this);}
if(g.enableDragDrop||g.enableDrag){this.dragZone=new Ext.grid.GridDragZone(g,{ddGroup:g.ddGroup||'GridDD'});}
this.updateHeaderSortState();},layout:function(){if(!this.mainBody){return;}
var g=this.grid;var c=g.getGridEl();var csize=c.getSize(true);var vw=csize.width;if(vw<20||csize.height<20){return;}
if(g.autoHeight){this.scroller.dom.style.overflow='visible';}else{this.el.setSize(csize.width,csize.height);var hdHeight=this.mainHd.getHeight();var vh=csize.height-(hdHeight);this.scroller.setSize(vw,vh);if(this.innerHd){this.innerHd.style.width=(vw)+'px';}}
if(this.forceFit){if(this.lastViewWidth!=vw){this.fitColumns(false,false);this.lastViewWidth=vw;}}else{this.autoExpand();this.syncHeaderScroll();}
-this.onLayout(vw,vh);},onLayout:function(vw,vh){},onColumnWidthUpdated:function(col,w,tw){},onAllColumnWidthsUpdated:function(ws,tw){},onColumnHiddenUpdated:function(col,hidden,tw){},updateColumnText:function(col,text){},afterMove:function(colIndex){},init:function(grid){this.grid=grid;this.initTemplates();this.initData(grid.store,grid.colModel);this.initUI(grid);},getColumnId:function(index){return this.cm.getColumnId(index);},renderHeaders:function(){var cm=this.cm,ts=this.templates;var ct=ts.hcell;var cb=[],sb=[],p={};for(var i=0,len=cm.getColumnCount();i<len;i++){p.id=cm.getColumnId(i);p.value=cm.getColumnHeader(i)||"";p.style=this.getColumnStyle(i,true);p.tooltip=this.getColumnTooltip(i);if(cm.config[i].align=='right'){p.istyle='padding-right:16px';}else{delete p.istyle;}
+this.onLayout(vw,vh);},onLayout:function(vw,vh){},onColumnWidthUpdated:function(col,w,tw){},onAllColumnWidthsUpdated:function(ws,tw){},onColumnHiddenUpdated:function(col,hidden,tw){},updateColumnText:function(col,text){},afterMove:function(colIndex){},init:function(grid){this.grid=grid;this.initTemplates();this.initData(grid.store,grid.colModel);this.initUI(grid);},getColumnId:function(index){return this.cm.getColumnId(index);},renderHeaders:function(){var cm=this.cm,ts=this.templates;var ct=ts.hcell;var cb=[],p={};for(var i=0,len=cm.getColumnCount();i<len;i++){p.id=cm.getColumnId(i);p.value=cm.getColumnHeader(i)||"";p.style=this.getColumnStyle(i,true);p.tooltip=this.getColumnTooltip(i);if(cm.config[i].align=='right'){p.istyle='padding-right:16px';}else{delete p.istyle;}
cb[cb.length]=ct.apply(p);}
return ts.header.apply({cells:cb.join(""),tstyle:'width:'+this.getTotalWidth()+';'});},getColumnTooltip:function(i){var tt=this.cm.getColumnTooltip(i);if(tt){if(Ext.QuickTips.isEnabled()){return'ext:qtip="'+tt+'"';}else{return'title="'+tt+'"';}}
return"";},beforeUpdate:function(){this.grid.stopEditing(true);},updateHeaders:function(){this.innerHd.firstChild.innerHTML=this.renderHeaders();},focusRow:function(row){this.focusCell(row,0,false);},focusCell:function(row,col,hscroll){this.syncFocusEl(this.ensureVisible(row,col,hscroll));if(Ext.isGecko){this.focusEl.focus();}else{this.focusEl.focus.defer(1,this.focusEl);}},resolveCell:function(row,col,hscroll){if(typeof row!="number"){row=row.rowIndex;}
@@ -2270,7 +2286,7 @@
this.syncFocusEl(firstRow);},deleteRows:function(dm,firstRow,lastRow){if(dm.getRowCount()<1){this.refresh();}else{this.fireEvent("beforerowsdeleted",this,firstRow,lastRow);this.removeRows(firstRow,lastRow);this.processRows(firstRow);this.fireEvent("rowsdeleted",this,firstRow,lastRow);}},getColumnStyle:function(col,isHeader){var style=!isHeader?(this.cm.config[col].css||''):'';style+='width:'+this.getColumnWidth(col)+';';if(this.cm.isHidden(col)){style+='display:none;';}
var align=this.cm.config[col].align;if(align){style+='text-align:'+align+';';}
return style;},getColumnWidth:function(col){var w=this.cm.getColumnWidth(col);if(typeof w=='number'){return(Ext.isBorderBox?w:(w-this.borderWidth>0?w-this.borderWidth:0))+'px';}
-return w;},getTotalWidth:function(){return this.cm.getTotalWidth()+'px';},fitColumns:function(preventRefresh,onlyExpand,omitColumn){var cm=this.cm,leftOver,dist,i;var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(aw<20){return;}
+return w;},getTotalWidth:function(){return this.cm.getTotalWidth()+'px';},fitColumns:function(preventRefresh,onlyExpand,omitColumn){var cm=this.cm,i;var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(aw<20){return;}
var extra=aw-tw;if(extra===0){return false;}
var vc=cm.getColumnCount(true);var ac=vc-(typeof omitColumn=='number'?1:0);if(ac===0){ac=1;omitColumn=undefined;}
var colCount=cm.getColumnCount();var cols=[];var extraCol=0;var width=0;var w;for(i=0;i<colCount;i++){if(!cm.isHidden(i)&&!cm.isFixed(i)&&i!==omitColumn){w=cm.getColumnWidth(i);cols.push(i);extraCol=i;cols.push(w);width+=w;}}
@@ -2280,7 +2296,7 @@
return true;},autoExpand:function(preventUpdate){var g=this.grid,cm=this.cm;if(!this.userResized&&g.autoExpandColumn){var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(tw!=aw){var ci=cm.getIndexById(g.autoExpandColumn);var currentWidth=cm.getColumnWidth(ci);var cw=Math.min(Math.max(((aw-tw)+currentWidth),g.autoExpandMin),g.autoExpandMax);if(cw!=currentWidth){cm.setColumnWidth(ci,cw,true);if(preventUpdate!==true){this.updateColumnWidth(ci,cw);}}}}},getColumnData:function(){var cs=[],cm=this.cm,colCount=cm.getColumnCount();for(var i=0;i<colCount;i++){var name=cm.getDataIndex(i);cs[i]={name:(typeof name=='undefined'?this.ds.fields.get(i).name:name),renderer:cm.getRenderer(i),id:cm.getColumnId(i),style:this.getColumnStyle(i)};}
return cs;},renderRows:function(startRow,endRow){var g=this.grid,cm=g.colModel,ds=g.store,stripe=g.stripeRows;var colCount=cm.getColumnCount();if(ds.getCount()<1){return"";}
var cs=this.getColumnData();startRow=startRow||0;endRow=typeof endRow=="undefined"?ds.getCount()-1:endRow;var rs=ds.getRange(startRow,endRow);return this.doRender(cs,rs,ds,startRow,colCount,stripe);},renderBody:function(){var markup=this.renderRows();return this.templates.body.apply({rows:markup});},refreshRow:function(record){var ds=this.ds,index;if(typeof record=='number'){index=record;record=ds.getAt(index);}else{index=ds.indexOf(record);}
-var cls=[];this.insertRows(ds,index,index,true);this.getRow(index).rowIndex=index;this.onRemove(ds,record,index+1,true);this.fireEvent("rowupdated",this,index,record);},refresh:function(headersToo){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var result=this.renderBody();this.mainBody.update(result);if(headersToo===true){this.updateHeaders();this.updateHeaderSortState();}
+this.insertRows(ds,index,index,true);this.getRow(index).rowIndex=index;this.onRemove(ds,record,index+1,true);this.fireEvent("rowupdated",this,index,record);},refresh:function(headersToo){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var result=this.renderBody();this.mainBody.update(result);if(headersToo===true){this.updateHeaders();this.updateHeaderSortState();}
this.processRows(0,true);this.layout();this.applyEmptyText();this.fireEvent("refresh",this);},applyEmptyText:function(){if(this.emptyText&&!this.hasRows()){this.mainBody.update('<div class="x-grid-empty">'+this.emptyText+'</div>');}},updateHeaderSortState:function(){var state=this.ds.getSortState();if(!state){return;}
if(!this.sortState||(this.sortState.field!=state.field||this.sortState.direction!=state.direction)){this.grid.fireEvent('sortchange',this.grid,state);}
this.sortState=state;var sortColumn=this.cm.findColumnIndex(state.field);if(sortColumn!=-1){var sortDir=state.direction;this.updateSortIcon(sortColumn,sortDir);}},destroy:function(){if(this.colMenu){Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.destroy();delete this.colMenu;}
@@ -2295,11 +2311,11 @@
this.ds=ds;if(this.cm){this.cm.un("configchange",this.onColConfigChange,this);this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this);this.cm.un("columnlockchange",this.onColumnLock,this);}
if(cm){delete this.lastViewWidth;cm.on("configchange",this.onColConfigChange,this);cm.on("widthchange",this.onColWidthChange,this);cm.on("headerchange",this.onHeaderChange,this);cm.on("hiddenchange",this.onHiddenChange,this);cm.on("columnmoved",this.onColumnMove,this);cm.on("columnlockchange",this.onColumnLock,this);}
this.cm=cm;},onDataChange:function(){this.refresh();this.updateHeaderSortState();this.syncFocusEl(0);},onClear:function(){this.refresh();this.syncFocusEl(0);},onUpdate:function(ds,record){this.refreshRow(record);},onAdd:function(ds,records,index){this.insertRows(ds,index,index+(records.length-1));},onRemove:function(ds,record,index,isUpdate){if(isUpdate!==true){this.fireEvent("beforerowremoved",this,index,record);}
-this.removeRow(index);if(isUpdate!==true){this.processRows(index);this.applyEmptyText();this.fireEvent("rowremoved",this,index,record);}},onLoad:function(){this.scrollToTop();},onColWidthChange:function(cm,col,width){this.updateColumnWidth(col,width);},onHeaderChange:function(cm,col,text){this.updateHeaders();},onHiddenChange:function(cm,col,hidden){this.updateColumnHidden(col,hidden);},onColumnMove:function(cm,oldIndex,newIndex){this.indexMap=null;var s=this.getScrollState();this.refresh(true);this.restoreScroll(s);this.afterMove(newIndex);},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true);},initUI:function(grid){grid.on("headerclick",this.onHeaderClick,this);if(grid.trackMouseOver){grid.on("mouseover",this.onRowOver,this);grid.on("mouseout",this.onRowOut,this);}},initEvents:function(){},onHeaderClick:function(g,index){if(this.headersDisabled||!this.cm.isSortable(index)){return;}
-g.stopEditing(true);g.store.sort(this.cm.getDataIndex(index));},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.addRowClass(row,"x-grid3-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&row!==this.findRowIndex(e.getRelatedTarget())){this.removeRowClass(row,"x-grid3-row-over");}},handleWheel:function(e){e.stopPropagation();},onRowSelect:function(row){this.addRowClass(row,this.selectedRowClass);},onRowDeselect:function(row){this.removeRowClass(row,this.selectedRowClass);},onCellSelect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).addClass("x-grid3-cell-selected");}},onCellDeselect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).removeClass("x-grid3-cell-selected");}},onColumnSplitterMoved:function(i,w){this.userResized=true;var cm=this.grid.colModel;cm.setColumnWidth(i,w,true);if(this.forceFit){this.fitColumns(true,false,i);this.updateAllColumnWidths();}else{this.updateColumnWidth(i,w);this.syncHeaderScroll();}
+this.removeRow(index);if(isUpdate!==true){this.processRows(index);this.applyEmptyText();this.fireEvent("rowremoved",this,index,record);}},onLoad:function(){this.scrollToTop();},onColWidthChange:function(cm,col,width){this.updateColumnWidth(col,width);},onHeaderChange:function(cm,col,text){this.updateHeaders();},onHiddenChange:function(cm,col,hidden){this.updateColumnHidden(col,hidden);},onColumnMove:function(cm,oldIndex,newIndex){this.indexMap=null;var s=this.getScrollState();this.refresh(true);this.restoreScroll(s);this.afterMove(newIndex);},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true);},initUI:function(grid){grid.on("headerclick",this.onHeaderClick,this);},initEvents:function(){},onHeaderClick:function(g,index){if(this.headersDisabled||!this.cm.isSortable(index)){return;}
+g.stopEditing(true);g.store.sort(this.cm.getDataIndex(index));},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.addRowClass(row,"x-grid3-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&!e.within(this.getRow(row),true)){this.removeRowClass(row,"x-grid3-row-over");}},handleWheel:function(e){e.stopPropagation();},onRowSelect:function(row){this.addRowClass(row,this.selectedRowClass);},onRowDeselect:function(row){this.removeRowClass(row,this.selectedRowClass);},onCellSelect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).addClass("x-grid3-cell-selected");}},onCellDeselect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).removeClass("x-grid3-cell-selected");}},onColumnSplitterMoved:function(i,w){this.userResized=true;var cm=this.grid.colModel;cm.setColumnWidth(i,w,true);if(this.forceFit){this.fitColumns(true,false,i);this.updateAllColumnWidths();}else{this.updateColumnWidth(i,w);this.syncHeaderScroll();}
this.grid.fireEvent("columnresize",i,w);},handleHdMenuClick:function(item){var index=this.hdCtxIndex;var cm=this.cm,ds=this.ds;switch(item.id){case"asc":ds.sort(cm.getDataIndex(index),"ASC");break;case"desc":ds.sort(cm.getDataIndex(index),"DESC");break;default:index=cm.getIndexById(item.id.substr(4));if(index!=-1){if(item.checked&&cm.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false;}
cm.setHidden(index,item.checked);}}
-return true;},isHideableColumn:function(c){return!c.hidden&&!c.fixed;},beforeColMenuShow:function(){var cm=this.cm,colCount=cm.getColumnCount();this.colMenu.removeAll();for(var i=0;i<colCount;i++){if(cm.config[i].fixed!==true&&cm.config[i].hideable!==false){this.colMenu.add(new Ext.menu.CheckItem({id:"col-"+cm.getColumnId(i),text:cm.getColumnHeader(i),checked:!cm.isHidden(i),hideOnClick:false,disabled:cm.config[i].hideable===false}));}}},handleHdDown:function(e,t){if(Ext.fly(t).hasClass('x-grid3-hd-btn')){e.stopEvent();var hd=this.findHeaderCell(t);Ext.fly(hd).addClass('x-grid3-hd-menu-open');var index=this.getCellIndex(hd);this.hdCtxIndex=index;var ms=this.hmenu.items,cm=this.cm;ms.get("asc").setDisabled(!cm.isSortable(index));ms.get("desc").setDisabled(!cm.isSortable(index));this.hmenu.on("hide",function(){Ext.fly(hd).removeClass('x-grid3-hd-menu-open');},this,{single:true});this.hmenu.show(t,"tl-bl?");}},handleHdOver:function(e,t){var hd=this.findHeaderCell(t);if(hd&&!this.headersDisabled){this.activeHd=hd;this.activeHdIndex=this.getCellIndex(hd);var fly=this.fly(hd);this.activeHdRegion=fly.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){fly.addClass("x-grid3-hd-over");this.activeHdBtn=fly.child('.x-grid3-hd-btn');if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(hd.firstChild.offsetHeight-1)+'px';}}}},handleHdMove:function(e,t){if(this.activeHd&&!this.headersDisabled){var hw=this.splitHandleWidth||5;var r=this.activeHdRegion;var x=e.getPageX();var ss=this.activeHd.style;if(x-r.left<=hw&&this.cm.isResizable(this.activeHdIndex-1)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'e-resize':'col-resize';}else if(r.right-x<=(!this.activeHdBtn?hw:2)&&this.cm.isResizable(this.activeHdIndex)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'w-resize':'col-resize';}else{ss.cursor='';}}},handleHdOut:function(e,t){var hd=this.findHeaderCell(t);if(hd&&(!Ext.isIE||!e.within(hd,true))){this.activeHd=null;this.fly(hd).removeClass("x-grid3-hd-over");hd.style.cursor='';}},hasRows:function(){var fc=this.mainBody.dom.firstChild;return fc&&fc.className!='x-grid-empty';},bind:function(d,c){this.initData(d,c);}});Ext.grid.GridView.SplitDragZone=function(grid,hd){this.grid=grid;this.view=grid.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5;};Ext.extend(Ext.grid.GridView.SplitDragZone,Ext.dd.DDProxy,{b4StartDrag:function(x,y){this.view.headersDisabled=true;var h=this.view.mainWrap.getHeight();this.marker.setHeight(h);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),'tl-tl',[-2,0]);this.proxy.setHeight(h);var w=this.cm.getColumnWidth(this.cellIndex);var minw=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(minw,1000);this.setYConstraint(0,0);this.minX=x-minw;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){var t=this.view.findHeaderCell(e.getTarget());if(t){var xy=this.view.fly(t).getXY(),x=xy[0],y=xy[1];var exy=e.getXY(),ex=exy[0],ey=exy[1];var w=t.offsetWidth,adjust=false;if((ex-x)<=this.hw){adjust=-1;}else if((x+w)-ex<=this.hw){adjust=0;}
+return true;},isHideableColumn:function(c){return!c.hidden&&!c.fixed;},beforeColMenuShow:function(){var cm=this.cm,colCount=cm.getColumnCount();this.colMenu.removeAll();for(var i=0;i<colCount;i++){if(cm.config[i].fixed!==true&&cm.config[i].hideable!==false){this.colMenu.add(new Ext.menu.CheckItem({id:"col-"+cm.getColumnId(i),text:cm.getColumnHeader(i),checked:!cm.isHidden(i),hideOnClick:false,disabled:cm.config[i].hideable===false}));}}},handleHdDown:function(e,t){if(Ext.fly(t).hasClass('x-grid3-hd-btn')){e.stopEvent();var hd=this.findHeaderCell(t);Ext.fly(hd).addClass('x-grid3-hd-menu-open');var index=this.getCellIndex(hd);this.hdCtxIndex=index;var ms=this.hmenu.items,cm=this.cm;ms.get("asc").setDisabled(!cm.isSortable(index));ms.get("desc").setDisabled(!cm.isSortable(index));this.hmenu.on("hide",function(){Ext.fly(hd).removeClass('x-grid3-hd-menu-open');},this,{single:true});this.hmenu.show(t,"tl-bl?");}},handleHdOver:function(e,t){var hd=this.findHeaderCell(t);if(hd&&!this.headersDisabled){this.activeHd=hd;this.activeHdIndex=this.getCellIndex(hd);var fly=this.fly(hd);this.activeHdRegion=fly.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){fly.addClass("x-grid3-hd-over");this.activeHdBtn=fly.child('.x-grid3-hd-btn');if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(hd.firstChild.offsetHeight-1)+'px';}}}},handleHdMove:function(e,t){if(this.activeHd&&!this.headersDisabled){var hw=this.splitHandleWidth||5;var r=this.activeHdRegion;var x=e.getPageX();var ss=this.activeHd.style;if(x-r.left<=hw&&this.cm.isResizable(this.activeHdIndex-1)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'e-resize':'col-resize';}else if(r.right-x<=(!this.activeHdBtn?hw:2)&&this.cm.isResizable(this.activeHdIndex)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'w-resize':'col-resize';}else{ss.cursor='';}}},handleHdOut:function(e,t){var hd=this.findHeaderCell(t);if(hd&&(!Ext.isIE||!e.within(hd,true))){this.activeHd=null;this.fly(hd).removeClass("x-grid3-hd-over");hd.style.cursor='';}},hasRows:function(){var fc=this.mainBody.dom.firstChild;return fc&&fc.className!='x-grid-empty';},bind:function(d,c){this.initData(d,c);}});Ext.grid.GridView.SplitDragZone=function(grid,hd){this.grid=grid;this.view=grid.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5;};Ext.extend(Ext.grid.GridView.SplitDragZone,Ext.dd.DDProxy,{b4StartDrag:function(x,y){this.view.headersDisabled=true;var h=this.view.mainWrap.getHeight();this.marker.setHeight(h);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),'tl-tl',[-2,0]);this.proxy.setHeight(h);var w=this.cm.getColumnWidth(this.cellIndex);var minw=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(minw,1000);this.setYConstraint(0,0);this.minX=x-minw;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){var t=this.view.findHeaderCell(e.getTarget());if(t){var xy=this.view.fly(t).getXY(),x=xy[0],y=xy[1];var exy=e.getXY(),ex=exy[0];var w=t.offsetWidth,adjust=false;if((ex-x)<=this.hw){adjust=-1;}else if((x+w)-ex<=this.hw){adjust=0;}
if(adjust!==false){this.cm=this.grid.colModel;var ci=this.view.getCellIndex(t);if(adjust==-1){if(ci+adjust<0){return;}
while(this.cm.isHidden(ci+adjust)){--adjust;if(ci+adjust<0){return;}}}
this.cellIndex=ci+adjust;this.split=t.dom;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this,arguments);}}else if(this.view.columnDrag){this.view.columnDrag.callHandleMouseDown(e);}}},endDrag:function(e){this.marker.hide();var v=this.view;var endX=Math.max(this.minX,e.getPageX());var diff=endX-this.startPos;v.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+diff);setTimeout(function(){v.headersDisabled=false;},50);},autoOffset:function(){this.setDelta(0,0);}});
@@ -2349,7 +2365,7 @@
return false;},onInitDrag:function(e){var data=this.dragData;this.ddel.innerHTML=this.grid.getDragDropText();this.proxy.update(this.ddel);},afterRepair:function(){this.dragging=false;},getRepairXY:function(e,data){return false;},onEndDrag:function(data,e){},onValidDrop:function(dd,e,id){this.hideProxy();},beforeInvalidDrop:function(e,id){}});
Ext.grid.ColumnModel=function(config){if(config.columns){Ext.apply(this,config);this.setConfig(config.columns,true);}else{this.setConfig(config,true);}
-this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","columnlockchange","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{defaultWidth:100,defaultSortable:false,getColumnId:function(index){return this.config[index].id;},setConfig:function(config,initial){if(!initial){delete this.totalWidth;for(var i=0,len=this.config.length;i<len;i++){var c=this.config[i];if(c.editor){c.editor.destroy();}}}
+this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","columnlockchange","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{defaultWidth:100,defaultSortable:false,getColumnId:function(index){return this.config[index].id;},getColumnAt:function(index){return this.config[index];},setConfig:function(config,initial){if(!initial){delete this.totalWidth;for(var i=0,len=this.config.length;i<len;i++){var c=this.config[i];if(c.editor){c.editor.destroy();}}}
this.config=config;this.lookup={};for(var i=0,len=config.length;i<len;i++){var c=config[i];if(!c.isColumn){var cls=Ext.grid.Column.types[c.xtype||'gridcolumn'];c=new cls(c);config[i]=c;}
this.lookup[c.id]=c;}
if(!initial){this.fireEvent('configchange',this);}},getColumnById:function(id){return this.lookup[id];},getIndexById:function(id){for(var i=0,len=this.config.length;i<len;i++){if(this.config[i].id==id){return i;}}
@@ -2362,7 +2378,7 @@
return this.config[col].sortable;},isMenuDisabled:function(col){return!!this.config[col].menuDisabled;},getRenderer:function(col){if(!this.config[col].renderer){return Ext.grid.ColumnModel.defaultRenderer;}
return this.config[col].renderer;},setRenderer:function(col,fn){this.config[col].renderer=fn;},getColumnWidth:function(col){return this.config[col].width||this.defaultWidth;},setColumnWidth:function(col,width,suppressEvent){this.config[col].width=width;this.totalWidth=null;if(!suppressEvent){this.fireEvent("widthchange",this,col,width);}},getTotalWidth:function(includeHidden){if(!this.totalWidth){this.totalWidth=0;for(var i=0,len=this.config.length;i<len;i++){if(includeHidden||!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);}}}
return this.totalWidth;},getColumnHeader:function(col){return this.config[col].header;},setColumnHeader:function(col,header){this.config[col].header=header;this.fireEvent("headerchange",this,col,header);},getColumnTooltip:function(col){return this.config[col].tooltip;},setColumnTooltip:function(col,tooltip){this.config[col].tooltip=tooltip;},getDataIndex:function(col){return this.config[col].dataIndex;},setDataIndex:function(col,dataIndex){this.config[col].dataIndex=dataIndex;},findColumnIndex:function(dataIndex){var c=this.config;for(var i=0,len=c.length;i<len;i++){if(c[i].dataIndex==dataIndex){return i;}}
-return-1;},isCellEditable:function(colIndex,rowIndex){return(this.config[colIndex].editable||(typeof this.config[colIndex].editable=="undefined"&&this.config[colIndex].editor))?true:false;},getCellEditor:function(colIndex,rowIndex){return this.config[colIndex].editor;},setEditable:function(col,editable){this.config[col].editable=editable;},isHidden:function(colIndex){return this.config[colIndex].hidden;},isFixed:function(colIndex){return this.config[colIndex].fixed;},isResizable:function(colIndex){return colIndex>=0&&this.config[colIndex].resizable!==false&&this.config[colIndex].fixed!==true;},setHidden:function(colIndex,hidden){var c=this.config[colIndex];if(c.hidden!==hidden){c.hidden=hidden;this.totalWidth=null;this.fireEvent("hiddenchange",this,colIndex,hidden);}},setEditor:function(col,editor){this.config[col].editor=editor;}});Ext.grid.ColumnModel.defaultRenderer=function(value){if(typeof value=="string"&&value.length<1){return" ";}
+return-1;},isCellEditable:function(colIndex,rowIndex){return(this.config[colIndex].editable||(typeof this.config[colIndex].editable=="undefined"&&this.config[colIndex].editor))?true:false;},getCellEditor:function(colIndex,rowIndex){return this.config[colIndex].getCellEditor(rowIndex);},setEditable:function(col,editable){this.config[col].editable=editable;},isHidden:function(colIndex){return this.config[colIndex].hidden;},isFixed:function(colIndex){return this.config[colIndex].fixed;},isResizable:function(colIndex){return colIndex>=0&&this.config[colIndex].resizable!==false&&this.config[colIndex].fixed!==true;},setHidden:function(colIndex,hidden){var c=this.config[colIndex];if(c.hidden!==hidden){c.hidden=hidden;this.totalWidth=null;this.fireEvent("hiddenchange",this,colIndex,hidden);}},setEditor:function(col,editor){this.config[col].editor=editor;}});Ext.grid.ColumnModel.defaultRenderer=function(value){if(typeof value=="string"&&value.length<1){return" ";}
return value;};
Ext.grid.AbstractSelectionModel=function(){this.locked=false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.AbstractSelectionModel,Ext.util.Observable,{init:function(grid){this.grid=grid;this.initEvents();},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;}});
@@ -2415,11 +2431,13 @@
return Ext.util.Format.htmlEncode(rv);},getPropertyName:function(name){var pn=this.grid.propertyNames;return pn&&pn[name]?pn[name]:name;},getCellEditor:function(colIndex,rowIndex){var p=this.store.getProperty(rowIndex);var n=p.data['name'],val=p.data['value'];if(this.grid.customEditors[n]){return this.grid.customEditors[n];}
if(Ext.isDate(val)){return this.editors['date'];}else if(typeof val=='number'){return this.editors['number'];}else if(typeof val=='boolean'){return this.editors['boolean'];}else{return this.editors['string'];}}});Ext.grid.PropertyGrid=Ext.extend(Ext.grid.EditorGridPanel,{enableColumnMove:false,stripeRows:false,trackMouseOver:false,clicksToEdit:1,enableHdMenu:false,viewConfig:{forceFit:true},initComponent:function(){this.customEditors=this.customEditors||{};this.lastEditRow=null;var store=new Ext.grid.PropertyStore(this);this.propStore=store;var cm=new Ext.grid.PropertyColumnModel(this,store);store.store.sort('name','ASC');this.addEvents('beforepropertychange','propertychange');this.cm=cm;this.ds=store.store;Ext.grid.PropertyGrid.superclass.initComponent.call(this);this.selModel.on('beforecellselect',function(sm,rowIndex,colIndex){if(colIndex===0){this.startEditing.defer(200,this,[rowIndex,1]);return false;}},this);},onRender:function(){Ext.grid.PropertyGrid.superclass.onRender.apply(this,arguments);this.getGridEl().addClass('x-props-grid');},afterRender:function(){Ext.grid.PropertyGrid.superclass.afterRender.apply(this,arguments);if(this.source){this.setSource(this.source);}},setSource:function(source){this.propStore.setSource(source);},getSource:function(){return this.propStore.getSource();}});Ext.reg("propertygrid",Ext.grid.PropertyGrid);
-Ext.grid.Column=function(config){Ext.apply(this,config);if(typeof this.renderer=="string"){this.renderer=Ext.util.Format[c.renderer];}
+Ext.grid.Column=function(config){Ext.apply(this,config);if(typeof this.renderer=="string"){this.renderer=Ext.util.Format[this.renderer];}
if(typeof this.id=="undefined"){this.id=++Ext.grid.Column.AUTO_ID;}
-if(this.editor){if(this.editor.isFormField){this.editor=new Ext.grid.GridEditor(this.editor);}else if(this.editor.xtype&&!this.editor.events){this.editor=new Ext.grid.GridEditor(Ext.create(this.editor,'textfield'));}}}
+if(this.editor){if(this.editor.xtype&&!this.editor.events){this.editor=Ext.create(this.editor,'textfield');}}}
Ext.grid.Column.AUTO_ID=0;Ext.grid.Column.prototype={isColumn:true,renderer:function(value){if(typeof value=="string"&&value.length<1){return" ";}
-return value;}};Ext.grid.BooleanColumn=Ext.extend(Ext.grid.Column,{renderer:function(value){if(value===undefined){return" ";}
+return value;},getEditor:function(rowIndex){return this.editable!==false?this.editor:null;},getCellEditor:function(rowIndex){var editor=this.getEditor(rowIndex);if(editor){if(!editor.startEdit){if(!editor.gridEditor){editor.gridEditor=new Ext.grid.GridEditor(editor);}
+return editor.gridEditor;}else if(editor.startEdit){return editor;}}
+return null;}};Ext.grid.BooleanColumn=Ext.extend(Ext.grid.Column,{renderer:function(value){if(value===undefined){return" ";}
if(!value||value==='false'){return"false";}
return'true';}});Ext.grid.NumberColumn=Ext.extend(Ext.grid.Column,{format:'0,000.00',constructor:function(cfg){this.supr().constructor.apply(this,arguments);this.renderer=Ext.util.Format.numberRenderer(this.format);}});Ext.grid.DateColumn=Ext.extend(Ext.grid.Column,{format:'m/d/Y',constructor:function(cfg){this.supr().constructor.apply(this,arguments);this.renderer=Ext.util.Format.dateRenderer(this.format);}});Ext.grid.TemplateColumn=Ext.extend(Ext.grid.Column,{constructor:function(cfg){this.supr().constructor.apply(this,arguments);var tpl=typeof this.tpl=='object'?this.tpl:new Ext.XTemplate(this.tpl);this.renderer=function(value,p,r){return tpl.apply(r.data);}
this.tpl=tpl;}});Ext.grid.Column.types={gridcolumn:Ext.grid.Column,booleancolumn:Ext.grid.BooleanColumn,numbercolumn:Ext.grid.NumberColumn,datecolumn:Ext.grid.DateColumn,templatecolumn:Ext.grid.TemplateColumn};
@@ -2557,7 +2575,7 @@
function updateIFrame(token){var html=['<html><body><div id="state">',token,'</div></body></html>'].join('');try{var doc=iframe.contentWindow.document;doc.open();doc.write(html);doc.close();return true;}catch(e){return false;}}
function checkIFrame(){if(!iframe.contentWindow||!iframe.contentWindow.document){setTimeout(checkIFrame,10);return;}
var doc=iframe.contentWindow.document;var elem=doc.getElementById("state");var token=elem?elem.innerText:null;var hash=getHash();setInterval(function(){doc=iframe.contentWindow.document;elem=doc.getElementById("state");var newtoken=elem?elem.innerText:null;var newHash=getHash();if(newtoken!==token){token=newtoken;handleStateChange(token);top.location.hash=token;hash=token;doSave();}else if(newHash!==hash){hash=newHash;updateIFrame(newHash);}},50);ready=true;Ext.History.fireEvent('ready',Ext.History);}
-function startUp(){currentToken=hiddenField.value;if(Ext.isIE){checkIFrame();}else{var hash=getHash();setInterval(function(){var newHash=getHash();if(newHash!==hash){hash=newHash;handleStateChange(hash);doSave();}},50);ready=true;Ext.History.fireEvent('ready',Ext.History);}}
+function startUp(){currentToken=hiddenField.value?hiddenField.value:getHash();if(Ext.isIE){checkIFrame();}else{var hash=getHash();setInterval(function(){var newHash=getHash();if(newHash!==hash){hash=newHash;handleStateChange(hash);doSave();}},50);ready=true;Ext.History.fireEvent('ready',Ext.History);}}
return{fieldId:'x-history-field',iframeId:'x-history-frame',events:{},init:function(onReady,scope){if(ready){Ext.callback(onReady,scope,[this]);return;}
if(!Ext.isReady){Ext.onReady(function(){Ext.History.init(onReady,scope);});return;}
hiddenField=Ext.getDom(Ext.History.fieldId);if(Ext.isIE){iframe=Ext.getDom(Ext.History.iframeId);}
Property changes on: mickael/trunk/ext/v3.0.0-a1/learn
___________________________________________________________________
Name: svn:ignore
+ desktop
Modified: mickael/trunk/ext/v3.0.0-a1/package/date.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/package/date.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/package/date.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -7,20 +7,21 @@
*/
-(function(){Date.formatCodeToRegex=function(character,currentGroup){var p=Date.parseCodes[character];if(p){p=Ext.type(p)=='function'?p():p;Date.parseCodes[character]=p;}
-return p?Ext.applyIf({c:p.c?String.format(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.escapeRe(character)}}
+(function(){function xf(format){var args=Array.prototype.slice.call(arguments,1);return format.replace(/\{(\d+)\}/g,function(m,i){return args[i];});}
+Date.formatCodeToRegex=function(character,currentGroup){var p=Date.parseCodes[character];if(p){p=Ext.type(p)=='function'?p():p;Date.parseCodes[character]=p;}
+return p?Ext.applyIf({c:p.c?xf(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.escapeRe(character)}}
var $f=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{count:0},parseRegexes:[],formatFunctions:{count:0},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},getShortMonthName:function(month){return Date.monthNames[month].substring(0,3);},getShortDayName:function(day){return Date.dayNames[day].substring(0,3);},getMonthNumber:function(name){return Date.monthNumbers[name.substring(0,1).toUpperCase()+name.substring(1,3).toLowerCase()];},formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"this.getFullYear()",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var c="Y-m-dTH:i:sP",code=[],i=0,l=c.length;i<l;++i){var e=c.charAt(i);code.push(e=="T"?"'T'":Date.getFormatCode(e));}
return code.join(" + ");},U:"Math.round(this.getTime() / 1000)"},parseDate:function(input,format){var p=Date.parseFunctions;if(p[format]==null){Date.createParser(format);}
var func=p[format];return Date[func](input);},getFormatCode:function(character){var f=Date.formatCodes[character];if(f){f=Ext.type(f)=='function'?f():f;Date.formatCodes[character]=f;}
return f||("'"+String.escape(character)+"'");},createNewFormat:function(format){var funcName="format"+Date.formatFunctions.count++,code="Date.prototype."+funcName+" = function(){return ",special=false,ch='';Date.formatFunctions[format]=funcName;for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}
else if(special){special=false;code+="'"+String.escape(ch)+"' + ";}
else{code+=Date.getFormatCode(ch)+" + ";}}
-eval(code.substring(0,code.length-3)+";}");},createParser:function(format){var funcName="parse"+Date.parseFunctions.count++,regexNum=Date.parseRegexes.length,currentGroup=1,code=["Date."+funcName+" = function(input){","var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;","input = String(input);","d = new Date();","y = d.getFullYear();","m = d.getMonth();","d = d.getDate();","var results = input.match(Date.parseRegexes["+regexNum+"]);","if (results && results.length > 0) {\n"].join('\n'),regex="",special=false,ch='';Date.parseFunctions[format]=funcName;for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}
+eval(code.substring(0,code.length-3)+";}");},createParser:function(){var code=["Date.{0} = function(input){","var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;","input = String(input);","d = new Date();","y = d.getFullYear();","m = d.getMonth();","d = d.getDate();","var results = input.match(Date.parseRegexes[{1}]);","if(results && results.length > 0){","{2}","if(u){","v = new Date(u * 1000);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){","v = new Date(y, m, d, h, i, s, ms);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0){","v = new Date(y, m, d, h, i, s);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0){","v = new Date(y, m, d, h, i);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0){","v = new Date(y, m, d, h);","}else if (y >= 0 && m >= 0 && d > 0){","v = new Date(y, m, d);","}else if (y >= 0 && m >= 0){","v = new Date(y, m);","}else if (y >= 0){","v = new Date(y);","}","}","return (v && (z != null || o != null))?"
++" (Ext.type(z) == 'number' ? v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - z) :"
++" v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn))) : v;","}"].join('\n');return function(format){var funcName="parse"+Date.parseFunctions.count++,regexNum=Date.parseRegexes.length,currentGroup=1,calc="",regex="",special=false,ch="";Date.parseFunctions[format]=funcName;for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}
else if(special){special=false;regex+=String.escape(ch);}
-else{var obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}
-code+=["if (u){","v = new Date(u * 1000);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){","v = new Date(y, m, d, h, i, s, ms);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0){","v = new Date(y, m, d, h, i, s);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0){","v = new Date(y, m, d, h, i);","}else if (y >= 0 && m >= 0 && d > 0 && h >= 0){","v = new Date(y, m, d, h);","}else if (y >= 0 && m >= 0 && d > 0){","v = new Date(y, m, d);","}else if (y >= 0 && m >= 0){","v = new Date(y, m);","}else if (y >= 0){","v = new Date(y);","}","}","return (v && (z != null || o != null))?"
-+" (Ext.type(z) == 'number' ? v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - z) :"
-+" v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn))) : v;","}"].join('\n');Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$","i");eval(code);},parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(Date.getShortDayName(i)),++i);return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:0,c:null,s:"(?:\\d{1,3}"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(Date.getShortMonthName(i)),++i);return Ext.applyIf({s:"("+a.join("|")+")"},$f("F"));},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return $f("Y");},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\n"
+else{var obj=$f(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){calc+=obj.c;}}}
+Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$","i");eval(xf(code,funcName,regexNum,calc));}}(),parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(Date.getShortDayName(i)),++i);return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:0,c:null,s:"(?:\\d{1,3})"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(Date.getShortMonthName(i)),++i);return Ext.applyIf({s:"("+a.join("|")+")"},$f("F"));},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return $f("Y");},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\n"
+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (results[{0}] == 'am') {\n"
+"if (h == 12) { h = 0; }\n"
+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"},A:{g:1,c:"if (results[{0}] == 'AM') {\n"
Modified: mickael/trunk/ext/v3.0.0-a1/package/form/form-debug.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/package/form/form-debug.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/package/form/form-debug.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -109,7 +109,7 @@
initValue : function(){
if(this.value !== undefined){
this.setValue(this.value);
- }else if(this.el.dom.value.length > 0 && this.el.dom.value != this.emptyText){
+ }else if(!Ext.isEmpty(this.el.dom.value) && this.el.dom.value != this.emptyText){
this.setValue(this.el.dom.value);
}
// reference to original value for reset
@@ -310,6 +310,11 @@
}
},
+ // private, does not work for all fields
+ append :function(v){
+ this.setValue([this.getValue(), v].join(''));
+ },
+
// private
adjustSize : function(w, h){
var s = Ext.form.Field.superclass.adjustSize.call(this, w, h);
@@ -1231,7 +1236,7 @@
if(typeof this.maxValue == "string"){
this.maxValue = this.parseDate(this.maxValue);
}
- this.ddMatch = null;
+ this.disabledDatesRE = null;
this.initDisabledDays();
},
@@ -1315,7 +1320,7 @@
}
}
var fvalue = this.formatDate(value);
- if(this.ddMatch && this.ddMatch.test(fvalue)){
+ if(this.disabledDatesRE && this.disabledDatesRE.test(fvalue)){
this.markInvalid(String.format(this.disabledDatesText, fvalue));
return false;
}
@@ -1401,7 +1406,7 @@
Ext.apply(this.menu.picker, {
minDate : this.minValue,
maxDate : this.maxValue,
- disabledDatesRE : this.ddMatch,
+ disabledDatesRE : this.disabledDatesRE,
disabledDatesText : this.disabledDatesText,
disabledDays : this.disabledDays,
disabledDaysText : this.disabledDaysText,
@@ -2452,7 +2457,13 @@
Ext.reg('combo', Ext.form.ComboBox);
Ext.Editor = function(field, config){
- this.field = field;
+ if(field.field){
+ this.field = Ext.create(field.field, 'textfield');
+ config = Ext.apply({}, field); // copy so we don't disturb original config
+ delete config.field;
+ }else{
+ this.field = field;
+ }
Ext.Editor.superclass.constructor.call(this, config);
};
@@ -2462,6 +2473,7 @@
+
value : "",
alignment: "c-c?",
@@ -2503,10 +2515,13 @@
cls: "x-editor",
parentEl : ct,
shim : this.shim,
- shadowOffset:4,
+ shadowOffset: this.shadowOffset || 4,
id: this.id,
constrain: this.constrain
});
+ if(this.zIndex){
+ this.el.setZIndex(this.zIndex);
+ }
this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden");
if(this.field.msgTarget != 'title'){
this.field.msgTarget = 'qtip';
@@ -3060,10 +3075,6 @@
// private
initComponent :function(){
this.form = this.createForm();
- if(this.fileUpload) {
- this.bodyCfg.enctype = 'multipart/form-data';
- }
-
Ext.FormPanel.superclass.initComponent.call(this);
this.bodyCfg = {
@@ -3072,7 +3083,9 @@
method : this.method || 'POST',
id : this.formId || Ext.id()
};
-
+ if(this.fileUpload) {
+ this.bodyCfg.enctype = 'multipart/form-data';
+ }
this.initItems();
this.addEvents(
Modified: mickael/trunk/ext/v3.0.0-a1/package/form/form.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/package/form/form.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/package/form/form.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -14,7 +14,7 @@
this.el.addClass('x-form-'+type);}
if(this.readOnly){this.el.dom.readOnly=true;}
if(this.tabIndex!==undefined){this.el.dom.setAttribute('tabIndex',this.tabIndex);}
-this.el.addClass([this.fieldClass,this.cls]);},getItemCt:function(){return this.el.up('.x-form-item',4);},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else if(this.el.dom.value.length>0&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value);}
+this.el.addClass([this.fieldClass,this.cls]);},getItemCt:function(){return this.el.up('.x-form-item',4);},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else if(!Ext.isEmpty(this.el.dom.value)&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value);}
this.originalValue=this.getValue();},isDirty:function(){if(this.disabled){return false;}
return String(this.getValue())!==String(this.originalValue);},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();this.initValue();},fireKey:function(e){if(e.isSpecialKey()){this.fireEvent("specialkey",this,e);}},reset:function(){this.setValue(this.originalValue);this.clearInvalid();},initEvents:function(){this.el.on(Ext.isIE||Ext.isSafari3?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);var o=this.inEditor&&Ext.isWindows&&Ext.isGecko?{buffer:10}:null;this.el.on("blur",this.onBlur,this,o);},onFocus:function(){if(!Ext.isOpera&&this.focusClass){this.el.addClass(this.focusClass);}
if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this);}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(!Ext.isOpera&&this.focusClass){this.el.removeClass(this.focusClass);}
@@ -29,7 +29,7 @@
this.fireEvent('valid',this);},getMessageHandler:function(){return Ext.form.MessageTargets[this.msgTarget];},getErrorCt:function(){return this.el.findParent('.x-form-element',5,true)||this.el.findParent('.x-form-field-wrap',5,true);},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,'tl-tr',[2,0]);},getRawValue:function(){var v=this.rendered?this.el.getValue():Ext.value(this.value,'');if(v===this.emptyText){v='';}
return v;},getValue:function(){if(!this.rendered){return this.value;}
var v=this.el.getValue();if(v===this.emptyText||v===undefined){v='';}
-return v;},setRawValue:function(v){return this.el.dom.value=(v===null||v===undefined?'':v);},setValue:function(v){this.value=v;if(this.rendered){this.el.dom.value=(v===null||v===undefined?'':v);this.validate();}},adjustSize:function(w,h){var s=Ext.form.Field.superclass.adjustSize.call(this,w,h);s.width=this.adjustWidth(this.el.dom.tagName,s.width);if(this.offsetCt){var ct=this.getItemCt();s.width-=ct.getFrameWidth('lr');s.height-=ct.getFrameWidth('tb');}
+return v;},setRawValue:function(v){return this.el.dom.value=(v===null||v===undefined?'':v);},setValue:function(v){this.value=v;if(this.rendered){this.el.dom.value=(v===null||v===undefined?'':v);this.validate();}},append:function(v){this.setValue([this.getValue(),v].join(''));},adjustSize:function(w,h){var s=Ext.form.Field.superclass.adjustSize.call(this,w,h);s.width=this.adjustWidth(this.el.dom.tagName,s.width);if(this.offsetCt){var ct=this.getItemCt();s.width-=ct.getFrameWidth('lr');s.height-=ct.getFrameWidth('tb');}
return s;},adjustWidth:function(tag,w){tag=tag.toLowerCase();if(typeof w=='number'&&!Ext.isSafari){if(Ext.isIE&&(tag=='input'||tag=='textarea')){if(tag=='input'&&!Ext.isStrict){return this.inEditor?w:w-3;}
if(tag=='input'&&Ext.isStrict){return w-(Ext.isIE6?4:1);}
if(tag=='textarea'&&Ext.isStrict){return w-2;}}else if(Ext.isOpera&&Ext.isStrict){if(tag=='input'){return w+2;}
@@ -96,14 +96,14 @@
Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:'x-form-date-trigger',showToday:true,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue);}
if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue);}
-this.ddMatch=null;this.initDisabledDays();},initDisabledDays:function(){if(this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i<dd.length;i++){re+=dd[i];if(i!=dd.length-1)re+="|";}
+this.disabledDatesRE=null;this.initDisabledDays();},initDisabledDays:function(){if(this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i<dd.length;i++){re+=dd[i];if(i!=dd.length-1)re+="|";}
this.disabledDatesRE=new RegExp(re+")");}},setDisabledDates:function(dd){this.disabledDates=dd;this.initDisabledDays();if(this.menu){this.menu.picker.setDisabledDates(this.disabledDatesRE);}},setDisabledDays:function(dd){this.disabledDays=dd;if(this.menu){this.menu.picker.setDisabledDays(dd);}},setMinValue:function(dt){this.minValue=(typeof dt=="string"?this.parseDate(dt):dt);if(this.menu){this.menu.picker.setMinDate(this.minValue);}},setMaxValue:function(dt){this.maxValue=(typeof dt=="string"?this.parseDate(dt):dt);if(this.menu){this.menu.picker.setMaxDate(this.maxValue);}},validateValue:function(value){value=this.formatDate(value);if(!Ext.form.DateField.superclass.validateValue.call(this,value)){return false;}
if(value.length<1){return true;}
var svalue=value;value=this.parseDate(value);if(!value){this.markInvalid(String.format(this.invalidText,svalue,this.format));return false;}
var time=value.getTime();if(this.minValue&&time<this.minValue.getTime()){this.markInvalid(String.format(this.minText,this.formatDate(this.minValue)));return false;}
if(this.maxValue&&time>this.maxValue.getTime()){this.markInvalid(String.format(this.maxText,this.formatDate(this.maxValue)));return false;}
if(this.disabledDays){var day=value.getDay();for(var i=0;i<this.disabledDays.length;i++){if(day===this.disabledDays[i]){this.markInvalid(this.disabledDaysText);return false;}}}
-var fvalue=this.formatDate(value);if(this.ddMatch&&this.ddMatch.test(fvalue)){this.markInvalid(String.format(this.disabledDatesText,fvalue));return false;}
+var fvalue=this.formatDate(value);if(this.disabledDatesRE&&this.disabledDatesRE.test(fvalue)){this.markInvalid(String.format(this.disabledDatesText,fvalue));return false;}
return true;},validateBlur:function(){return!this.menu||!this.menu.isVisible();},getValue:function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this))||"";},setValue:function(date){Ext.form.DateField.superclass.setValue.call(this,this.formatDate(this.parseDate(date)));},parseDate:function(value){if(!value||Ext.isDate(value)){return value;}
var v=Date.parseDate(value,this.format);if(!v&&this.altFormats){if(!this.altFormatsArray){this.altFormatsArray=this.altFormats.split("|");}
for(var i=0,len=this.altFormatsArray.length;i<len&&!v;i++){v=Date.parseDate(value,this.altFormatsArray[i]);}}
@@ -111,7 +111,7 @@
if(this.wrap){this.wrap.remove();}
Ext.form.DateField.superclass.onDestroy.call(this);},formatDate:function(date){return Ext.isDate(date)?date.dateFormat(this.format):date;},menuListeners:{select:function(m,d){this.setValue(d);},show:function(){this.onFocus();},hide:function(){this.focus.defer(10,this);var ml=this.menuListeners;this.menu.un("select",ml.select,this);this.menu.un("show",ml.show,this);this.menu.un("hide",ml.hide,this);}},onTriggerClick:function(){if(this.disabled){return;}
if(this.menu==null){this.menu=new Ext.menu.DateMenu();}
-Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.ddMatch,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?");},beforeBlur:function(){var v=this.parseDate(this.getRawValue());if(v){this.setValue(v);}}});Ext.reg('datefield',Ext.form.DateField);
+Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.disabledDatesRE,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?");},beforeBlur:function(){var v=this.parseDate(this.getRawValue());if(v){this.setValue(v);}}});Ext.reg('datefield',Ext.form.DateField);
Ext.form.Checkbox=Ext.extend(Ext.form.Field,{checkedCls:'x-form-check-checked',focusCls:'x-form-check-focus',overCls:'x-form-check-over',mouseDownCls:'x-form-check-down',tabIndex:0,checked:false,defaultAutoCreate:{tag:'input',type:'checkbox',autocomplete:'off'},baseCls:'x-form-check',initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this);this.addEvents('check');},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.initCheckEvents();},initCheckEvents:function(){this.innerWrap.removeAllListeners();this.innerWrap.addClassOnOver(this.overCls);this.innerWrap.addClassOnClick(this.mouseDownCls);this.innerWrap.on('click',this.onClick,this);this.innerWrap.on('keyup',this.onKeyUp,this);},onRender:function(ct,position){Ext.form.Checkbox.superclass.onRender.call(this,ct,position);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue;}
this.el.addClass('x-hidden');this.innerWrap=this.el.wrap({tabIndex:this.tabIndex,cls:this.baseCls+'-wrap-inner'});this.wrap=this.innerWrap.wrap({cls:this.baseCls+'-wrap'});if(this.boxLabel){this.labelEl=this.innerWrap.createChild({tag:'label',htmlFor:this.el.id,cls:'x-form-cb-label',html:this.boxLabel});}
@@ -167,7 +167,9 @@
if(this.isExpanded()){this.collapse();this.el.focus();}else{this.onFocus({});if(this.triggerAction=='all'){this.doQuery(this.allQuery,true);}else{this.doQuery(this.getRawValue());}
this.el.focus();}}});Ext.reg('combo',Ext.form.ComboBox);
-Ext.Editor=function(field,config){this.field=field;Ext.Editor.superclass.constructor.call(this,config);};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey");},onRender:function(ct,position){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:ct,shim:this.shim,shadowOffset:4,id:this.id,constrain:this.constrain});this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!='title'){this.field.msgTarget='qtip';}
+Ext.Editor=function(field,config){if(field.field){this.field=Ext.create(field.field,'textfield');config=Ext.apply({},field);delete config.field;}else{this.field=field;}
+Ext.Editor.superclass.constructor.call(this,config);};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey");},onRender:function(ct,position){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:ct,shim:this.shim,shadowOffset:this.shadowOffset||4,id:this.id,constrain:this.constrain});if(this.zIndex){this.el.setZIndex(this.zIndex);}
+this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!='title'){this.field.msgTarget='qtip';}
this.field.inEditor=true;this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute('autocomplete','off');}
this.field.on("specialkey",this.onSpecialKey,this);if(this.swallowKeys){this.field.el.swallowEvent(['keydown','keypress']);}
this.field.show();this.field.on("blur",this.onBlur,this);if(this.field.grow){this.field.on("autosize",this.el.sync,this.el,{delay:1});}},onSpecialKey:function(field,e){var key=e.getKey();if(this.completeOnEnter&&key==e.ENTER){e.stopEvent();this.completeEdit();}else if(this.cancelOnEsc&&key==e.ESC){this.cancelEdit();}else{this.fireEvent('specialkey',field,e);}
@@ -202,8 +204,8 @@
return this;},getValues:function(asString){var fs=Ext.lib.Ajax.serializeForm(this.el.dom);if(asString===true){return fs;}
return Ext.urlDecode(fs);},getFieldValues:function(){var o={};this.items.each(function(f){o[f.getName()]=f.getValue();});return o;},clearInvalid:function(){this.items.each(function(f){f.clearInvalid();});return this;},reset:function(){this.items.each(function(f){f.reset();});return this;},add:function(){this.items.addAll(Array.prototype.slice.call(arguments,0));return this;},remove:function(field){this.items.remove(field);return this;},render:function(){this.items.each(function(f){if(f.isFormField&&!f.rendered&&document.getElementById(f.id)){f.applyToMarkup(f.id);}});return this;},applyToFields:function(o){this.items.each(function(f){Ext.apply(f,o);});return this;},applyIfToFields:function(o){this.items.each(function(f){Ext.applyIf(f,o);});return this;},callFieldMethod:function(fnName,args){args=args||[];this.items.each(function(f){if(typeof f[fnName]=='function'){f[fnName].apply(f,args);}});return this;}});Ext.BasicForm=Ext.form.BasicForm;
-Ext.FormPanel=Ext.extend(Ext.Panel,{buttonAlign:'center',minButtonWidth:75,labelAlign:'left',monitorValid:false,monitorPoll:200,layout:'form',initComponent:function(){this.form=this.createForm();if(this.fileUpload){this.bodyCfg.enctype='multipart/form-data';}
-Ext.FormPanel.superclass.initComponent.call(this);this.bodyCfg={tag:'form',cls:this.baseCls+'-body',method:this.method||'POST',id:this.formId||Ext.id()};this.initItems();this.addEvents('clientvalidation');this.relayEvents(this.form,['beforeaction','actionfailed','actioncomplete']);},createForm:function(){delete this.initialConfig.listeners;return new Ext.form.BasicForm(null,this.initialConfig);},initFields:function(){var f=this.form;var formPanel=this;var fn=function(c){if(c.isFormField){f.add(c);}if(c.isFieldWrap){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});f.add(c.field);}else if(c.doLayout&&c!=formPanel){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});if(c.items){c.items.each(fn);}}}
+Ext.FormPanel=Ext.extend(Ext.Panel,{buttonAlign:'center',minButtonWidth:75,labelAlign:'left',monitorValid:false,monitorPoll:200,layout:'form',initComponent:function(){this.form=this.createForm();Ext.FormPanel.superclass.initComponent.call(this);this.bodyCfg={tag:'form',cls:this.baseCls+'-body',method:this.method||'POST',id:this.formId||Ext.id()};if(this.fileUpload){this.bodyCfg.enctype='multipart/form-data';}
+this.initItems();this.addEvents('clientvalidation');this.relayEvents(this.form,['beforeaction','actionfailed','actioncomplete']);},createForm:function(){delete this.initialConfig.listeners;return new Ext.form.BasicForm(null,this.initialConfig);},initFields:function(){var f=this.form;var formPanel=this;var fn=function(c){if(c.isFormField){f.add(c);}if(c.isFieldWrap){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});f.add(c.field);}else if(c.doLayout&&c!=formPanel){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});if(c.items){c.items.each(fn);}}}
this.items.each(fn);},getLayoutTarget:function(){return this.form.el;},getForm:function(){return this.form;},onRender:function(ct,position){this.initFields();Ext.FormPanel.superclass.onRender.call(this,ct,position);this.form.initEl(this.body);},beforeDestroy:function(){Ext.FormPanel.superclass.beforeDestroy.call(this);this.stopMonitoring();Ext.destroy(this.form);},initEvents:function(){Ext.FormPanel.superclass.initEvents.call(this);this.items.on('remove',this.onRemove,this);this.items.on('add',this.onAdd,this);if(this.monitorValid){this.startMonitoring();}},onAdd:function(ct,c){if(c.isFormField){this.form.add(c);}},onRemove:function(c){if(c.isFormField){Ext.destroy(c.container.up('.x-form-item'));this.form.remove(c);}},startMonitoring:function(){if(!this.bound){this.bound=true;Ext.TaskMgr.start({run:this.bindHandler,interval:this.monitorPoll||200,scope:this});}},stopMonitoring:function(){this.bound=false;},load:function(){this.form.load.apply(this.form,arguments);},onDisable:function(){Ext.FormPanel.superclass.onDisable.call(this);if(this.form){this.form.items.each(function(){this.disable();});}},onEnable:function(){Ext.FormPanel.superclass.onEnable.call(this);if(this.form){this.form.items.each(function(){this.enable();});}},bindHandler:function(){if(!this.bound){return false;}
var valid=true;this.form.items.each(function(f){if(!f.isValid(true)){valid=false;return false;}});if(this.buttons){for(var i=0,len=this.buttons.length;i<len;i++){var btn=this.buttons[i];if(btn.formBind===true&&btn.disabled===valid){btn.setDisabled(!valid);}}}
this.fireEvent('clientvalidation',this,valid);}});Ext.reg('form',Ext.FormPanel);Ext.form.FormPanel=Ext.FormPanel;
Modified: mickael/trunk/ext/v3.0.0-a1/package/grid/edit-grid-debug.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/package/grid/edit-grid-debug.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/package/grid/edit-grid-debug.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -147,6 +147,7 @@
ed.record = r;
ed.on("complete", this.onEditComplete, this, {single: true});
ed.on("specialkey", this.selModel.onEditorKey, this.selModel);
+
this.activeEditor = ed;
var v = this.preEditValue(r, field);
ed.startEdit(this.view.getCell(row, col).firstChild, v === undefined ? '' : v);
Modified: mickael/trunk/ext/v3.0.0-a1/package/grid/grid.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/package/grid/grid.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/package/grid/grid.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -24,9 +24,9 @@
return this.fly(el).findParent(this.rowSelector,this.rowSelectorDepth);},findRowIndex:function(el){var r=this.findRow(el);return r?r.rowIndex:false;},getRow:function(row){return this.getRows()[row];},getCell:function(row,col){return this.getRow(row).getElementsByTagName('td')[col];},getHeaderCell:function(index){return this.mainHd.dom.getElementsByTagName('td')[index];},addRowClass:function(row,cls){var r=this.getRow(row);if(r){this.fly(r).addClass(cls);}},removeRowClass:function(row,cls){var r=this.getRow(row);if(r){this.fly(r).removeClass(cls);}},removeRow:function(row){Ext.removeNode(this.getRow(row));this.syncFocusEl(row);},removeRows:function(firstRow,lastRow){var bd=this.mainBody.dom;for(var rowIndex=firstRow;rowIndex<=lastRow;rowIndex++){Ext.removeNode(bd.childNodes[firstRow]);}
this.syncFocusEl(firstRow);},getScrollState:function(){var sb=this.scroller.dom;return{left:sb.scrollLeft,top:sb.scrollTop};},restoreScroll:function(state){var sb=this.scroller.dom;sb.scrollLeft=state.left;sb.scrollTop=state.top;},scrollToTop:function(){this.scroller.dom.scrollTop=0;this.scroller.dom.scrollLeft=0;},syncScroll:function(){this.syncHeaderScroll();var mb=this.scroller.dom;this.grid.fireEvent("bodyscroll",mb.scrollLeft,mb.scrollTop);},syncHeaderScroll:function(){var mb=this.scroller.dom;this.innerHd.scrollLeft=mb.scrollLeft;this.innerHd.scrollLeft=mb.scrollLeft;},updateSortIcon:function(col,dir){var sc=this.sortClasses;var hds=this.mainHd.select('td').removeClass(sc);hds.item(col).addClass(sc[dir=="DESC"?1:0]);},updateAllColumnWidths:function(){var tw=this.getTotalWidth();var clen=this.cm.getColumnCount();var ws=[];for(var i=0;i<clen;i++){ws[i]=this.getColumnWidth(i);}
this.innerHd.firstChild.firstChild.style.width=tw;for(var i=0;i<clen;i++){var hd=this.getHeaderCell(i);hd.style.width=ws[i];}
-var ns=this.getRows();for(var i=0,len=ns.length;i<len;i++){ns[i].style.width=tw;ns[i].firstChild.style.width=tw;var row=ns[i].firstChild.rows[0];for(var j=0;j<clen;j++){row.childNodes[j].style.width=ws[j];}}
-this.onAllColumnWidthsUpdated(ws,tw);},updateColumnWidth:function(col,width){var w=this.getColumnWidth(col);var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var hd=this.getHeaderCell(col);hd.style.width=w;var ns=this.getRows();for(var i=0,len=ns.length;i<len;i++){ns[i].style.width=tw;ns[i].firstChild.style.width=tw;ns[i].firstChild.rows[0].childNodes[col].style.width=w;}
-this.onColumnWidthUpdated(col,w,tw);},updateColumnHidden:function(col,hidden){var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var display=hidden?'none':'';var hd=this.getHeaderCell(col);hd.style.display=display;var ns=this.getRows();for(var i=0,len=ns.length;i<len;i++){ns[i].style.width=tw;ns[i].firstChild.style.width=tw;ns[i].firstChild.rows[0].childNodes[col].style.display=display;}
+var ns=this.getRows(),row,trow;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;trow=row.firstChild.rows[0];for(var j=0;j<clen;j++){trow.childNodes[j].style.width=ws[j];}}}
+this.onAllColumnWidthsUpdated(ws,tw);},updateColumnWidth:function(col,width){var w=this.getColumnWidth(col);var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var hd=this.getHeaderCell(col);hd.style.width=w;var ns=this.getRows(),row;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;row.firstChild.rows[0].childNodes[col].style.width=w;}}
+this.onColumnWidthUpdated(col,w,tw);},updateColumnHidden:function(col,hidden){var tw=this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width=tw;var display=hidden?'none':'';var hd=this.getHeaderCell(col);hd.style.display=display;var ns=this.getRows(),row;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;row.firstChild.rows[0].childNodes[col].style.display=display;}}
this.onColumnHiddenUpdated(col,hidden,tw);delete this.lastViewWidth;this.layout();},doRender:function(cs,rs,ds,startRow,colCount,stripe){var ts=this.templates,ct=ts.cell,rt=ts.row,last=colCount-1;var tstyle='width:'+this.getTotalWidth()+';';var buf=[],cb,c,p={},rp={tstyle:tstyle},r;for(var j=0,len=rs.length;j<len;j++){r=rs[j];cb=[];var rowIndex=(j+startRow);for(var i=0;i<colCount;i++){c=cs[i];p.id=c.id;p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');p.attr=p.cellAttr="";p.value=c.renderer(r.data[c.name],p,r,rowIndex,i,ds);p.style=c.style;if(p.value==undefined||p.value==="")p.value=" ";if(r.dirty&&typeof r.modified[c.name]!=='undefined'){p.css+=' x-grid3-dirty-cell';}
cb[cb.length]=ct.apply(p);}
var alt=[];if(stripe&&((rowIndex+1)%2==0)){alt[0]="x-grid3-row-alt";}
@@ -41,12 +41,13 @@
if(g.enableHdMenu!==false){if(g.enableColumnHide!==false){this.colMenu=new Ext.menu.Menu({id:g.id+"-hcols-menu"});this.colMenu.on("beforeshow",this.beforeColMenuShow,this);this.colMenu.on("itemclick",this.handleHdMenuClick,this);}
this.hmenu=new Ext.menu.Menu({id:g.id+"-hctx"});this.hmenu.add({id:"asc",text:this.sortAscText,cls:"xg-hmenu-sort-asc"},{id:"desc",text:this.sortDescText,cls:"xg-hmenu-sort-desc"});if(g.enableColumnHide!==false){this.hmenu.add('-',{id:"columns",text:this.columnsText,menu:this.colMenu,iconCls:'x-cols-icon'});}
this.hmenu.on("itemclick",this.handleHdMenuClick,this);}
+if(g.trackMouseOver){this.mainBody.on("mouseover",this.onRowOver,this);this.mainBody.on("mouseout",this.onRowOut,this);}
if(g.enableDragDrop||g.enableDrag){this.dragZone=new Ext.grid.GridDragZone(g,{ddGroup:g.ddGroup||'GridDD'});}
this.updateHeaderSortState();},layout:function(){if(!this.mainBody){return;}
var g=this.grid;var c=g.getGridEl();var csize=c.getSize(true);var vw=csize.width;if(vw<20||csize.height<20){return;}
if(g.autoHeight){this.scroller.dom.style.overflow='visible';}else{this.el.setSize(csize.width,csize.height);var hdHeight=this.mainHd.getHeight();var vh=csize.height-(hdHeight);this.scroller.setSize(vw,vh);if(this.innerHd){this.innerHd.style.width=(vw)+'px';}}
if(this.forceFit){if(this.lastViewWidth!=vw){this.fitColumns(false,false);this.lastViewWidth=vw;}}else{this.autoExpand();this.syncHeaderScroll();}
-this.onLayout(vw,vh);},onLayout:function(vw,vh){},onColumnWidthUpdated:function(col,w,tw){},onAllColumnWidthsUpdated:function(ws,tw){},onColumnHiddenUpdated:function(col,hidden,tw){},updateColumnText:function(col,text){},afterMove:function(colIndex){},init:function(grid){this.grid=grid;this.initTemplates();this.initData(grid.store,grid.colModel);this.initUI(grid);},getColumnId:function(index){return this.cm.getColumnId(index);},renderHeaders:function(){var cm=this.cm,ts=this.templates;var ct=ts.hcell;var cb=[],sb=[],p={};for(var i=0,len=cm.getColumnCount();i<len;i++){p.id=cm.getColumnId(i);p.value=cm.getColumnHeader(i)||"";p.style=this.getColumnStyle(i,true);p.tooltip=this.getColumnTooltip(i);if(cm.config[i].align=='right'){p.istyle='padding-right:16px';}else{delete p.istyle;}
+this.onLayout(vw,vh);},onLayout:function(vw,vh){},onColumnWidthUpdated:function(col,w,tw){},onAllColumnWidthsUpdated:function(ws,tw){},onColumnHiddenUpdated:function(col,hidden,tw){},updateColumnText:function(col,text){},afterMove:function(colIndex){},init:function(grid){this.grid=grid;this.initTemplates();this.initData(grid.store,grid.colModel);this.initUI(grid);},getColumnId:function(index){return this.cm.getColumnId(index);},renderHeaders:function(){var cm=this.cm,ts=this.templates;var ct=ts.hcell;var cb=[],p={};for(var i=0,len=cm.getColumnCount();i<len;i++){p.id=cm.getColumnId(i);p.value=cm.getColumnHeader(i)||"";p.style=this.getColumnStyle(i,true);p.tooltip=this.getColumnTooltip(i);if(cm.config[i].align=='right'){p.istyle='padding-right:16px';}else{delete p.istyle;}
cb[cb.length]=ct.apply(p);}
return ts.header.apply({cells:cb.join(""),tstyle:'width:'+this.getTotalWidth()+';'});},getColumnTooltip:function(i){var tt=this.cm.getColumnTooltip(i);if(tt){if(Ext.QuickTips.isEnabled()){return'ext:qtip="'+tt+'"';}else{return'title="'+tt+'"';}}
return"";},beforeUpdate:function(){this.grid.stopEditing(true);},updateHeaders:function(){this.innerHd.firstChild.innerHTML=this.renderHeaders();},focusRow:function(row){this.focusCell(row,0,false);},focusCell:function(row,col,hscroll){this.syncFocusEl(this.ensureVisible(row,col,hscroll));if(Ext.isGecko){this.focusEl.focus();}else{this.focusEl.focus.defer(1,this.focusEl);}},resolveCell:function(row,col,hscroll){if(typeof row!="number"){row=row.rowIndex;}
@@ -66,7 +67,7 @@
this.syncFocusEl(firstRow);},deleteRows:function(dm,firstRow,lastRow){if(dm.getRowCount()<1){this.refresh();}else{this.fireEvent("beforerowsdeleted",this,firstRow,lastRow);this.removeRows(firstRow,lastRow);this.processRows(firstRow);this.fireEvent("rowsdeleted",this,firstRow,lastRow);}},getColumnStyle:function(col,isHeader){var style=!isHeader?(this.cm.config[col].css||''):'';style+='width:'+this.getColumnWidth(col)+';';if(this.cm.isHidden(col)){style+='display:none;';}
var align=this.cm.config[col].align;if(align){style+='text-align:'+align+';';}
return style;},getColumnWidth:function(col){var w=this.cm.getColumnWidth(col);if(typeof w=='number'){return(Ext.isBorderBox?w:(w-this.borderWidth>0?w-this.borderWidth:0))+'px';}
-return w;},getTotalWidth:function(){return this.cm.getTotalWidth()+'px';},fitColumns:function(preventRefresh,onlyExpand,omitColumn){var cm=this.cm,leftOver,dist,i;var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(aw<20){return;}
+return w;},getTotalWidth:function(){return this.cm.getTotalWidth()+'px';},fitColumns:function(preventRefresh,onlyExpand,omitColumn){var cm=this.cm,i;var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(aw<20){return;}
var extra=aw-tw;if(extra===0){return false;}
var vc=cm.getColumnCount(true);var ac=vc-(typeof omitColumn=='number'?1:0);if(ac===0){ac=1;omitColumn=undefined;}
var colCount=cm.getColumnCount();var cols=[];var extraCol=0;var width=0;var w;for(i=0;i<colCount;i++){if(!cm.isHidden(i)&&!cm.isFixed(i)&&i!==omitColumn){w=cm.getColumnWidth(i);cols.push(i);extraCol=i;cols.push(w);width+=w;}}
@@ -76,7 +77,7 @@
return true;},autoExpand:function(preventUpdate){var g=this.grid,cm=this.cm;if(!this.userResized&&g.autoExpandColumn){var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(tw!=aw){var ci=cm.getIndexById(g.autoExpandColumn);var currentWidth=cm.getColumnWidth(ci);var cw=Math.min(Math.max(((aw-tw)+currentWidth),g.autoExpandMin),g.autoExpandMax);if(cw!=currentWidth){cm.setColumnWidth(ci,cw,true);if(preventUpdate!==true){this.updateColumnWidth(ci,cw);}}}}},getColumnData:function(){var cs=[],cm=this.cm,colCount=cm.getColumnCount();for(var i=0;i<colCount;i++){var name=cm.getDataIndex(i);cs[i]={name:(typeof name=='undefined'?this.ds.fields.get(i).name:name),renderer:cm.getRenderer(i),id:cm.getColumnId(i),style:this.getColumnStyle(i)};}
return cs;},renderRows:function(startRow,endRow){var g=this.grid,cm=g.colModel,ds=g.store,stripe=g.stripeRows;var colCount=cm.getColumnCount();if(ds.getCount()<1){return"";}
var cs=this.getColumnData();startRow=startRow||0;endRow=typeof endRow=="undefined"?ds.getCount()-1:endRow;var rs=ds.getRange(startRow,endRow);return this.doRender(cs,rs,ds,startRow,colCount,stripe);},renderBody:function(){var markup=this.renderRows();return this.templates.body.apply({rows:markup});},refreshRow:function(record){var ds=this.ds,index;if(typeof record=='number'){index=record;record=ds.getAt(index);}else{index=ds.indexOf(record);}
-var cls=[];this.insertRows(ds,index,index,true);this.getRow(index).rowIndex=index;this.onRemove(ds,record,index+1,true);this.fireEvent("rowupdated",this,index,record);},refresh:function(headersToo){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var result=this.renderBody();this.mainBody.update(result);if(headersToo===true){this.updateHeaders();this.updateHeaderSortState();}
+this.insertRows(ds,index,index,true);this.getRow(index).rowIndex=index;this.onRemove(ds,record,index+1,true);this.fireEvent("rowupdated",this,index,record);},refresh:function(headersToo){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var result=this.renderBody();this.mainBody.update(result);if(headersToo===true){this.updateHeaders();this.updateHeaderSortState();}
this.processRows(0,true);this.layout();this.applyEmptyText();this.fireEvent("refresh",this);},applyEmptyText:function(){if(this.emptyText&&!this.hasRows()){this.mainBody.update('<div class="x-grid-empty">'+this.emptyText+'</div>');}},updateHeaderSortState:function(){var state=this.ds.getSortState();if(!state){return;}
if(!this.sortState||(this.sortState.field!=state.field||this.sortState.direction!=state.direction)){this.grid.fireEvent('sortchange',this.grid,state);}
this.sortState=state;var sortColumn=this.cm.findColumnIndex(state.field);if(sortColumn!=-1){var sortDir=state.direction;this.updateSortIcon(sortColumn,sortDir);}},destroy:function(){if(this.colMenu){Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.destroy();delete this.colMenu;}
@@ -91,17 +92,17 @@
this.ds=ds;if(this.cm){this.cm.un("configchange",this.onColConfigChange,this);this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this);this.cm.un("columnlockchange",this.onColumnLock,this);}
if(cm){delete this.lastViewWidth;cm.on("configchange",this.onColConfigChange,this);cm.on("widthchange",this.onColWidthChange,this);cm.on("headerchange",this.onHeaderChange,this);cm.on("hiddenchange",this.onHiddenChange,this);cm.on("columnmoved",this.onColumnMove,this);cm.on("columnlockchange",this.onColumnLock,this);}
this.cm=cm;},onDataChange:function(){this.refresh();this.updateHeaderSortState();this.syncFocusEl(0);},onClear:function(){this.refresh();this.syncFocusEl(0);},onUpdate:function(ds,record){this.refreshRow(record);},onAdd:function(ds,records,index){this.insertRows(ds,index,index+(records.length-1));},onRemove:function(ds,record,index,isUpdate){if(isUpdate!==true){this.fireEvent("beforerowremoved",this,index,record);}
-this.removeRow(index);if(isUpdate!==true){this.processRows(index);this.applyEmptyText();this.fireEvent("rowremoved",this,index,record);}},onLoad:function(){this.scrollToTop();},onColWidthChange:function(cm,col,width){this.updateColumnWidth(col,width);},onHeaderChange:function(cm,col,text){this.updateHeaders();},onHiddenChange:function(cm,col,hidden){this.updateColumnHidden(col,hidden);},onColumnMove:function(cm,oldIndex,newIndex){this.indexMap=null;var s=this.getScrollState();this.refresh(true);this.restoreScroll(s);this.afterMove(newIndex);},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true);},initUI:function(grid){grid.on("headerclick",this.onHeaderClick,this);if(grid.trackMouseOver){grid.on("mouseover",this.onRowOver,this);grid.on("mouseout",this.onRowOut,this);}},initEvents:function(){},onHeaderClick:function(g,index){if(this.headersDisabled||!this.cm.isSortable(index)){return;}
-g.stopEditing(true);g.store.sort(this.cm.getDataIndex(index));},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.addRowClass(row,"x-grid3-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&row!==this.findRowIndex(e.getRelatedTarget())){this.removeRowClass(row,"x-grid3-row-over");}},handleWheel:function(e){e.stopPropagation();},onRowSelect:function(row){this.addRowClass(row,this.selectedRowClass);},onRowDeselect:function(row){this.removeRowClass(row,this.selectedRowClass);},onCellSelect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).addClass("x-grid3-cell-selected");}},onCellDeselect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).removeClass("x-grid3-cell-selected");}},onColumnSplitterMoved:function(i,w){this.userResized=true;var cm=this.grid.colModel;cm.setColumnWidth(i,w,true);if(this.forceFit){this.fitColumns(true,false,i);this.updateAllColumnWidths();}else{this.updateColumnWidth(i,w);this.syncHeaderScroll();}
+this.removeRow(index);if(isUpdate!==true){this.processRows(index);this.applyEmptyText();this.fireEvent("rowremoved",this,index,record);}},onLoad:function(){this.scrollToTop();},onColWidthChange:function(cm,col,width){this.updateColumnWidth(col,width);},onHeaderChange:function(cm,col,text){this.updateHeaders();},onHiddenChange:function(cm,col,hidden){this.updateColumnHidden(col,hidden);},onColumnMove:function(cm,oldIndex,newIndex){this.indexMap=null;var s=this.getScrollState();this.refresh(true);this.restoreScroll(s);this.afterMove(newIndex);},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true);},initUI:function(grid){grid.on("headerclick",this.onHeaderClick,this);},initEvents:function(){},onHeaderClick:function(g,index){if(this.headersDisabled||!this.cm.isSortable(index)){return;}
+g.stopEditing(true);g.store.sort(this.cm.getDataIndex(index));},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.addRowClass(row,"x-grid3-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&!e.within(this.getRow(row),true)){this.removeRowClass(row,"x-grid3-row-over");}},handleWheel:function(e){e.stopPropagation();},onRowSelect:function(row){this.addRowClass(row,this.selectedRowClass);},onRowDeselect:function(row){this.removeRowClass(row,this.selectedRowClass);},onCellSelect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).addClass("x-grid3-cell-selected");}},onCellDeselect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).removeClass("x-grid3-cell-selected");}},onColumnSplitterMoved:function(i,w){this.userResized=true;var cm=this.grid.colModel;cm.setColumnWidth(i,w,true);if(this.forceFit){this.fitColumns(true,false,i);this.updateAllColumnWidths();}else{this.updateColumnWidth(i,w);this.syncHeaderScroll();}
this.grid.fireEvent("columnresize",i,w);},handleHdMenuClick:function(item){var index=this.hdCtxIndex;var cm=this.cm,ds=this.ds;switch(item.id){case"asc":ds.sort(cm.getDataIndex(index),"ASC");break;case"desc":ds.sort(cm.getDataIndex(index),"DESC");break;default:index=cm.getIndexById(item.id.substr(4));if(index!=-1){if(item.checked&&cm.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false;}
cm.setHidden(index,item.checked);}}
-return true;},isHideableColumn:function(c){return!c.hidden&&!c.fixed;},beforeColMenuShow:function(){var cm=this.cm,colCount=cm.getColumnCount();this.colMenu.removeAll();for(var i=0;i<colCount;i++){if(cm.config[i].fixed!==true&&cm.config[i].hideable!==false){this.colMenu.add(new Ext.menu.CheckItem({id:"col-"+cm.getColumnId(i),text:cm.getColumnHeader(i),checked:!cm.isHidden(i),hideOnClick:false,disabled:cm.config[i].hideable===false}));}}},handleHdDown:function(e,t){if(Ext.fly(t).hasClass('x-grid3-hd-btn')){e.stopEvent();var hd=this.findHeaderCell(t);Ext.fly(hd).addClass('x-grid3-hd-menu-open');var index=this.getCellIndex(hd);this.hdCtxIndex=index;var ms=this.hmenu.items,cm=this.cm;ms.get("asc").setDisabled(!cm.isSortable(index));ms.get("desc").setDisabled(!cm.isSortable(index));this.hmenu.on("hide",function(){Ext.fly(hd).removeClass('x-grid3-hd-menu-open');},this,{single:true});this.hmenu.show(t,"tl-bl?");}},handleHdOver:function(e,t){var hd=this.findHeaderCell(t);if(hd&&!this.headersDisabled){this.activeHd=hd;this.activeHdIndex=this.getCellIndex(hd);var fly=this.fly(hd);this.activeHdRegion=fly.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){fly.addClass("x-grid3-hd-over");this.activeHdBtn=fly.child('.x-grid3-hd-btn');if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(hd.firstChild.offsetHeight-1)+'px';}}}},handleHdMove:function(e,t){if(this.activeHd&&!this.headersDisabled){var hw=this.splitHandleWidth||5;var r=this.activeHdRegion;var x=e.getPageX();var ss=this.activeHd.style;if(x-r.left<=hw&&this.cm.isResizable(this.activeHdIndex-1)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'e-resize':'col-resize';}else if(r.right-x<=(!this.activeHdBtn?hw:2)&&this.cm.isResizable(this.activeHdIndex)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'w-resize':'col-resize';}else{ss.cursor='';}}},handleHdOut:function(e,t){var hd=this.findHeaderCell(t);if(hd&&(!Ext.isIE||!e.within(hd,true))){this.activeHd=null;this.fly(hd).removeClass("x-grid3-hd-over");hd.style.cursor='';}},hasRows:function(){var fc=this.mainBody.dom.firstChild;return fc&&fc.className!='x-grid-empty';},bind:function(d,c){this.initData(d,c);}});Ext.grid.GridView.SplitDragZone=function(grid,hd){this.grid=grid;this.view=grid.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5;};Ext.extend(Ext.grid.GridView.SplitDragZone,Ext.dd.DDProxy,{b4StartDrag:function(x,y){this.view.headersDisabled=true;var h=this.view.mainWrap.getHeight();this.marker.setHeight(h);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),'tl-tl',[-2,0]);this.proxy.setHeight(h);var w=this.cm.getColumnWidth(this.cellIndex);var minw=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(minw,1000);this.setYConstraint(0,0);this.minX=x-minw;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){var t=this.view.findHeaderCell(e.getTarget());if(t){var xy=this.view.fly(t).getXY(),x=xy[0],y=xy[1];var exy=e.getXY(),ex=exy[0],ey=exy[1];var w=t.offsetWidth,adjust=false;if((ex-x)<=this.hw){adjust=-1;}else if((x+w)-ex<=this.hw){adjust=0;}
+return true;},isHideableColumn:function(c){return!c.hidden&&!c.fixed;},beforeColMenuShow:function(){var cm=this.cm,colCount=cm.getColumnCount();this.colMenu.removeAll();for(var i=0;i<colCount;i++){if(cm.config[i].fixed!==true&&cm.config[i].hideable!==false){this.colMenu.add(new Ext.menu.CheckItem({id:"col-"+cm.getColumnId(i),text:cm.getColumnHeader(i),checked:!cm.isHidden(i),hideOnClick:false,disabled:cm.config[i].hideable===false}));}}},handleHdDown:function(e,t){if(Ext.fly(t).hasClass('x-grid3-hd-btn')){e.stopEvent();var hd=this.findHeaderCell(t);Ext.fly(hd).addClass('x-grid3-hd-menu-open');var index=this.getCellIndex(hd);this.hdCtxIndex=index;var ms=this.hmenu.items,cm=this.cm;ms.get("asc").setDisabled(!cm.isSortable(index));ms.get("desc").setDisabled(!cm.isSortable(index));this.hmenu.on("hide",function(){Ext.fly(hd).removeClass('x-grid3-hd-menu-open');},this,{single:true});this.hmenu.show(t,"tl-bl?");}},handleHdOver:function(e,t){var hd=this.findHeaderCell(t);if(hd&&!this.headersDisabled){this.activeHd=hd;this.activeHdIndex=this.getCellIndex(hd);var fly=this.fly(hd);this.activeHdRegion=fly.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){fly.addClass("x-grid3-hd-over");this.activeHdBtn=fly.child('.x-grid3-hd-btn');if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(hd.firstChild.offsetHeight-1)+'px';}}}},handleHdMove:function(e,t){if(this.activeHd&&!this.headersDisabled){var hw=this.splitHandleWidth||5;var r=this.activeHdRegion;var x=e.getPageX();var ss=this.activeHd.style;if(x-r.left<=hw&&this.cm.isResizable(this.activeHdIndex-1)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'e-resize':'col-resize';}else if(r.right-x<=(!this.activeHdBtn?hw:2)&&this.cm.isResizable(this.activeHdIndex)){ss.cursor=Ext.isAir?'move':Ext.isSafari?'w-resize':'col-resize';}else{ss.cursor='';}}},handleHdOut:function(e,t){var hd=this.findHeaderCell(t);if(hd&&(!Ext.isIE||!e.within(hd,true))){this.activeHd=null;this.fly(hd).removeClass("x-grid3-hd-over");hd.style.cursor='';}},hasRows:function(){var fc=this.mainBody.dom.firstChild;return fc&&fc.className!='x-grid-empty';},bind:function(d,c){this.initData(d,c);}});Ext.grid.GridView.SplitDragZone=function(grid,hd){this.grid=grid;this.view=grid.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5;};Ext.extend(Ext.grid.GridView.SplitDragZone,Ext.dd.DDProxy,{b4StartDrag:function(x,y){this.view.headersDisabled=true;var h=this.view.mainWrap.getHeight();this.marker.setHeight(h);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),'tl-tl',[-2,0]);this.proxy.setHeight(h);var w=this.cm.getColumnWidth(this.cellIndex);var minw=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(minw,1000);this.setYConstraint(0,0);this.minX=x-minw;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){var t=this.view.findHeaderCell(e.getTarget());if(t){var xy=this.view.fly(t).getXY(),x=xy[0],y=xy[1];var exy=e.getXY(),ex=exy[0];var w=t.offsetWidth,adjust=false;if((ex-x)<=this.hw){adjust=-1;}else if((x+w)-ex<=this.hw){adjust=0;}
if(adjust!==false){this.cm=this.grid.colModel;var ci=this.view.getCellIndex(t);if(adjust==-1){if(ci+adjust<0){return;}
while(this.cm.isHidden(ci+adjust)){--adjust;if(ci+adjust<0){return;}}}
this.cellIndex=ci+adjust;this.split=t.dom;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this,arguments);}}else if(this.view.columnDrag){this.view.columnDrag.callHandleMouseDown(e);}}},endDrag:function(e){this.marker.hide();var v=this.view;var endX=Math.max(this.minX,e.getPageX());var diff=endX-this.startPos;v.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+diff);setTimeout(function(){v.headersDisabled=false;},50);},autoOffset:function(){this.setDelta(0,0);}});
Ext.grid.ColumnModel=function(config){if(config.columns){Ext.apply(this,config);this.setConfig(config.columns,true);}else{this.setConfig(config,true);}
-this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","columnlockchange","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{defaultWidth:100,defaultSortable:false,getColumnId:function(index){return this.config[index].id;},setConfig:function(config,initial){if(!initial){delete this.totalWidth;for(var i=0,len=this.config.length;i<len;i++){var c=this.config[i];if(c.editor){c.editor.destroy();}}}
+this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","columnlockchange","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{defaultWidth:100,defaultSortable:false,getColumnId:function(index){return this.config[index].id;},getColumnAt:function(index){return this.config[index];},setConfig:function(config,initial){if(!initial){delete this.totalWidth;for(var i=0,len=this.config.length;i<len;i++){var c=this.config[i];if(c.editor){c.editor.destroy();}}}
this.config=config;this.lookup={};for(var i=0,len=config.length;i<len;i++){var c=config[i];if(!c.isColumn){var cls=Ext.grid.Column.types[c.xtype||'gridcolumn'];c=new cls(c);config[i]=c;}
this.lookup[c.id]=c;}
if(!initial){this.fireEvent('configchange',this);}},getColumnById:function(id){return this.lookup[id];},getIndexById:function(id){for(var i=0,len=this.config.length;i<len;i++){if(this.config[i].id==id){return i;}}
@@ -114,7 +115,7 @@
return this.config[col].sortable;},isMenuDisabled:function(col){return!!this.config[col].menuDisabled;},getRenderer:function(col){if(!this.config[col].renderer){return Ext.grid.ColumnModel.defaultRenderer;}
return this.config[col].renderer;},setRenderer:function(col,fn){this.config[col].renderer=fn;},getColumnWidth:function(col){return this.config[col].width||this.defaultWidth;},setColumnWidth:function(col,width,suppressEvent){this.config[col].width=width;this.totalWidth=null;if(!suppressEvent){this.fireEvent("widthchange",this,col,width);}},getTotalWidth:function(includeHidden){if(!this.totalWidth){this.totalWidth=0;for(var i=0,len=this.config.length;i<len;i++){if(includeHidden||!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);}}}
return this.totalWidth;},getColumnHeader:function(col){return this.config[col].header;},setColumnHeader:function(col,header){this.config[col].header=header;this.fireEvent("headerchange",this,col,header);},getColumnTooltip:function(col){return this.config[col].tooltip;},setColumnTooltip:function(col,tooltip){this.config[col].tooltip=tooltip;},getDataIndex:function(col){return this.config[col].dataIndex;},setDataIndex:function(col,dataIndex){this.config[col].dataIndex=dataIndex;},findColumnIndex:function(dataIndex){var c=this.config;for(var i=0,len=c.length;i<len;i++){if(c[i].dataIndex==dataIndex){return i;}}
-return-1;},isCellEditable:function(colIndex,rowIndex){return(this.config[colIndex].editable||(typeof this.config[colIndex].editable=="undefined"&&this.config[colIndex].editor))?true:false;},getCellEditor:function(colIndex,rowIndex){return this.config[colIndex].editor;},setEditable:function(col,editable){this.config[col].editable=editable;},isHidden:function(colIndex){return this.config[colIndex].hidden;},isFixed:function(colIndex){return this.config[colIndex].fixed;},isResizable:function(colIndex){return colIndex>=0&&this.config[colIndex].resizable!==false&&this.config[colIndex].fixed!==true;},setHidden:function(colIndex,hidden){var c=this.config[colIndex];if(c.hidden!==hidden){c.hidden=hidden;this.totalWidth=null;this.fireEvent("hiddenchange",this,colIndex,hidden);}},setEditor:function(col,editor){this.config[col].editor=editor;}});Ext.grid.ColumnModel.defaultRenderer=function(value){if(typeof value=="string"&&value.length<1){return" ";}
+return-1;},isCellEditable:function(colIndex,rowIndex){return(this.config[colIndex].editable||(typeof this.config[colIndex].editable=="undefined"&&this.config[colIndex].editor))?true:false;},getCellEditor:function(colIndex,rowIndex){return this.config[colIndex].getCellEditor(rowIndex);},setEditable:function(col,editable){this.config[col].editable=editable;},isHidden:function(colIndex){return this.config[colIndex].hidden;},isFixed:function(colIndex){return this.config[colIndex].fixed;},isResizable:function(colIndex){return colIndex>=0&&this.config[colIndex].resizable!==false&&this.config[colIndex].fixed!==true;},setHidden:function(colIndex,hidden){var c=this.config[colIndex];if(c.hidden!==hidden){c.hidden=hidden;this.totalWidth=null;this.fireEvent("hiddenchange",this,colIndex,hidden);}},setEditor:function(col,editor){this.config[col].editor=editor;}});Ext.grid.ColumnModel.defaultRenderer=function(value){if(typeof value=="string"&&value.length<1){return" ";}
return value;};
Ext.grid.AbstractSelectionModel=function(){this.locked=false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.AbstractSelectionModel,Ext.util.Observable,{init:function(grid){this.grid=grid;this.initEvents();},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;}});
Modified: mickael/trunk/ext/v3.0.0-a1/package/menu/menus.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/package/menu/menus.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/package/menu/menus.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -51,9 +51,9 @@
return null;},setCheckedItem:function(groupId,itemId){var g=groups[groupId];if(g){for(var i=0,l=g.length;i<l;i++){if(g[i].id==itemId){g[i].setChecked(true);}}}
return null;}};}();
-Ext.menu.BaseItem=function(config){Ext.menu.BaseItem.superclass.constructor.call(this,config);this.addEvents('click','activate','deactivate');if(this.handler){this.on("click",this.handler,this.scope);}};Ext.extend(Ext.menu.BaseItem,Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,hideDelay:100,ctype:"Ext.menu.BaseItem",actionMode:"container",render:function(container,parentMenu){this.parentMenu=parentMenu;Ext.menu.BaseItem.superclass.render.call(this,container);this.container.menuItemId=this.itemId||this.id;},onRender:function(container,position){this.el=Ext.get(this.el);container.dom.appendChild(this.el.dom);},setHandler:function(handler,scope){if(this.handler){this.un("click",this.handler,this.scope);}
+Ext.menu.BaseItem=function(config){Ext.menu.BaseItem.superclass.constructor.call(this,config);this.addEvents('click','activate','deactivate');if(this.handler){this.on("click",this.handler,this.scope);}};Ext.extend(Ext.menu.BaseItem,Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,clickHideDelay:1,ctype:"Ext.menu.BaseItem",actionMode:"container",render:function(container,parentMenu){this.parentMenu=parentMenu;Ext.menu.BaseItem.superclass.render.call(this,container);this.container.menuItemId=this.itemId||this.id;},onRender:function(container,position){this.el=Ext.get(this.el);container.dom.appendChild(this.el.dom);},setHandler:function(handler,scope){if(this.handler){this.un("click",this.handler,this.scope);}
this.on("click",this.handler=handler,this.scope=scope);},onClick:function(e){if(!this.disabled&&this.fireEvent("click",this,e)!==false&&this.parentMenu.fireEvent("itemclick",this,e)!==false){this.handleClick(e);}else{e.stopEvent();}},activate:function(){if(this.disabled){return false;}
-var li=this.container;li.addClass(this.activeClass);this.region=li.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true;},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this);},shouldDeactivate:function(e){return!this.region||!this.region.contains(e.getPoint());},handleClick:function(e){if(this.hideOnClick){this.parentMenu.hide.defer(this.hideDelay,this.parentMenu,[true]);}},expandMenu:function(autoActivate){},hideMenu:function(){}});
+var li=this.container;li.addClass(this.activeClass);this.region=li.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true;},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this);},shouldDeactivate:function(e){return!this.region||!this.region.contains(e.getPoint());},handleClick:function(e){if(this.hideOnClick){this.parentMenu.hide.defer(this.clickHideDelay,this.parentMenu,[true]);}},expandMenu:function(autoActivate){},hideMenu:function(){}});
Ext.menu.TextItem=function(cfg){if(typeof cfg=='string'){cfg={text:cfg}}
Ext.menu.TextItem.superclass.constructor.call(this,cfg);};Ext.extend(Ext.menu.TextItem,Ext.menu.BaseItem,{hideOnClick:false,itemCls:"x-menu-text",onRender:function(){var s=document.createElement("span");s.className=this.itemCls;s.innerHTML=this.text;this.el=s;Ext.menu.TextItem.superclass.onRender.apply(this,arguments);}});
Modified: mickael/trunk/ext/v3.0.0-a1/resources/css/ext-all.css
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/resources/css/ext-all.css 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/resources/css/ext-all.css 2008-11-21 14:33:19 UTC (rev 31)
@@ -1108,7 +1108,7 @@
}
.x-form-cb-label {
- width:'auto' !important;
+ width:auto !important;
float:none !important;
clear:none !important;
display:inline !important;
@@ -3532,7 +3532,7 @@
.x-menu a.x-menu-item {
display:block;
line-height:16px;
- padding:3px 21px 3px 3px;
+ padding:3px 21px 3px 3px;
white-space: nowrap;
text-decoration:none;
color:#222;
@@ -3541,12 +3541,18 @@
cursor:pointer;
}
.x-menu-item-active {
- background: #ebf3fd;
- border:1px solid #aaccf6;
+ background: #dbecf4;
+ border-color:#AACCF6;
+ border-style:solid;
+ border-width: 1px 0;
+ margin:0 1px;
padding: 0;
}
.x-menu-item-active a.x-menu-item {
- color: #233d6d;
+ border-color:#AACCF6;
+ border-style:solid;
+ border-width:0 1px;
+ margin:0 -1px;
}
.x-menu-item-icon {
@@ -3558,6 +3564,9 @@
margin: 0 8px 0 0;
background-position:center;
}
+.ext-ie .x-menu-item-icon {
+ vertical-align: middle;
+}
.x-menu-check-item .x-menu-item-icon{
background: transparent url(../images/default/menu/unchecked.gif) no-repeat center;
@@ -4223,6 +4232,12 @@
background-position:0 -63px;
}
+
+.x-panel-fbar td,.x-panel-fbar span,.x-panel-fbar input,.x-panel-fbar div,.x-panel-fbar select,.x-panel-fbar label{
+ white-space: nowrap;
+ font:normal 11px arial,tahoma, helvetica, sans-serif;
+}
+
.x-window {
@@ -4407,7 +4422,7 @@
}
.x-window-plain .x-window-mc {
- background: #CAD9EC;
+ background: #ccd9e8;
border-right:1px solid #DFE8F6;
border-bottom:1px solid #DFE8F6;
border-top:1px solid #a3bae9;
@@ -4423,7 +4438,7 @@
}
body.x-body-masked .x-window-plain .x-window-mc {
- background: #C7D6E9;
+ background: #ccd9e8;
}
Modified: mickael/trunk/ext/v3.0.0-a1/resources/css/form.css
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/resources/css/form.css 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/resources/css/form.css 2008-11-21 14:33:19 UTC (rev 31)
@@ -434,7 +434,7 @@
}
.x-form-cb-label {
- width:'auto' !important;
+ width:auto !important;
float:none !important;
clear:none !important;
display:inline !important;
Modified: mickael/trunk/ext/v3.0.0-a1/resources/css/menu.css
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/resources/css/menu.css 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/resources/css/menu.css 2008-11-21 14:33:19 UTC (rev 31)
@@ -133,7 +133,7 @@
.x-menu a.x-menu-item {
display:block;
line-height:16px;
- padding:3px 21px 3px 3px;
+ padding:3px 21px 3px 3px;
white-space: nowrap;
text-decoration:none;
color:#222;
@@ -142,12 +142,18 @@
cursor:pointer;
}
.x-menu-item-active {
- background: #ebf3fd;
- border:1px solid #aaccf6;
+ background: #dbecf4;
+ border-color:#AACCF6;
+ border-style:solid;
+ border-width: 1px 0;
+ margin:0 1px;
padding: 0;
}
.x-menu-item-active a.x-menu-item {
- color: #233d6d;
+ border-color:#AACCF6;
+ border-style:solid;
+ border-width:0 1px;
+ margin:0 -1px;
}
.x-menu-item-icon {
@@ -159,6 +165,9 @@
margin: 0 8px 0 0;
background-position:center;
}
+.ext-ie .x-menu-item-icon {
+ vertical-align: middle;
+}
.x-menu-check-item .x-menu-item-icon{
background: transparent url(../images/default/menu/unchecked.gif) no-repeat center;
Modified: mickael/trunk/ext/v3.0.0-a1/resources/css/panel.css
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/resources/css/panel.css 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/resources/css/panel.css 2008-11-21 14:33:19 UTC (rev 31)
@@ -455,3 +455,9 @@
.x-panel-btns .x-btn-click .x-btn-left{
background-position:0 -63px;
}
+
+
+.x-panel-fbar td,.x-panel-fbar span,.x-panel-fbar input,.x-panel-fbar div,.x-panel-fbar select,.x-panel-fbar label{
+ white-space: nowrap;
+ font:normal 11px arial,tahoma, helvetica, sans-serif;
+}
Modified: mickael/trunk/ext/v3.0.0-a1/resources/css/window.css
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/resources/css/window.css 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/resources/css/window.css 2008-11-21 14:33:19 UTC (rev 31)
@@ -196,7 +196,7 @@
}
.x-window-plain .x-window-mc {
- background: #CAD9EC;
+ background: #ccd9e8;
border-right:1px solid #DFE8F6;
border-bottom:1px solid #DFE8F6;
border-top:1px solid #a3bae9;
@@ -212,5 +212,5 @@
}
body.x-body-masked .x-window-plain .x-window-mc {
- background: #C7D6E9;
+ background: #ccd9e8;
}
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/resources/css/xtheme-gray.css
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/resources/css/xtheme-gray.css 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/resources/css/xtheme-gray.css 2008-11-21 14:33:19 UTC (rev 31)
@@ -21,7 +21,7 @@
.x-panel-header {
color:#333;
border:1px solid #d0d0d0;
- background-image:url(../images/gray/panel/white-top-bottom.gif);
+ background-image:url(../images/gray/panel/top-bottom.gif);
}
.x-panel-body {
@@ -65,7 +65,7 @@
background-image:url(../images/gray/panel/corners-sprite.gif);
}
.x-panel-mc {
- background:#f1f1f1;
+ background:#fff;
}
.x-panel-mc .x-panel-body {
background:transparent;
@@ -98,16 +98,143 @@
/* Buttons */
-.x-btn-left{
- background-image:url(../images/gray/button/btn-sprite.gif);
+.x-btn-tl{
+ background-image:url(../images/gray/button/btn.gif);
}
-.x-btn-right{
- background-image:url(../images/gray/button/btn-sprite.gif);
+.x-btn-tr{
+ background-image:url(../images/gray/button/btn.gif);
}
-.x-btn-center{
- background-image:url(../images/gray/button/btn-sprite.gif);
+.x-btn-tc{
+ background-image:url(../images/gray/button/btn.gif);
}
+.x-btn-ml{
+ background-image:url(../images/gray/button/btn.gif);
+}
+.x-btn-mr{
+ background-image:url(../images/gray/button/btn.gif);
+}
+
+.x-btn-mc{
+ background-image:url(../images/gray/button/btn.gif);
+}
+.x-btn-bl{
+ background-image:url(../images/gray/button/btn.gif);
+}
+.x-btn-br{
+ background-image:url(../images/gray/button/btn.gif);
+}
+.x-btn-bc{
+ background-image:url(../images/gray/button/btn.gif);
+}
+.x-btn-over .x-btn-mc em.x-btn-split, .x-btn-click .x-btn-mc em.x-btn-split, .x-btn-menu-active .x-btn-mc em.x-btn-split, .x-btn-pressed .x-btn-mc em.x-btn-split {
+ background-image:url(../images/default/button/s-arrow.gif);
+}
+
+.x-toolbar .x-btn-over .x-btn-tl{
+ background-position: 0 0;
+}
+.x-toolbar .x-btn-over .x-btn-tr{
+ background-position: -3px 0;
+}
+.x-toolbar .x-btn-over .x-btn-tc{
+ background-position: 0 -6px;
+}
+
+.x-toolbar .x-btn-over .x-btn-ml{
+ background-position: 0 -24px;
+}
+.x-toolbar .x-btn-over .x-btn-mr{
+ background-position: -3px -24px;
+}
+
+.x-toolbar .x-btn-over .x-btn-mc{
+ background-position: 0 -1096px;
+}
+.x-toolbar .x-btn-over .x-btn-bl{
+ background-position: 0 -3px;
+}
+.x-toolbar .x-btn-over .x-btn-br{
+ background-position: -3px -3px;
+}
+.x-toolbar .x-btn-over .x-btn-bc{
+ background-position: 0 -15px;
+}
+
+.x-toolbar .x-btn-over .x-btn-mc em.x-btn-split, .x-toolbar .x-btn-click .x-btn-mc em.x-btn-split, .x-toolbar .x-btn-menu-active .x-btn-mc em.x-btn-split, .x-toolbar .x-btn-pressed .x-btn-mc em.x-btn-split {
+ background-image:url(../images/default/button/s-arrow.gif);
+}
+
+
+.x-toolbar .x-btn-click .x-btn-tl, .x-toolbar .x-btn-menu-active .x-btn-tl, .x-toolbar .x-btn-pressed .x-btn-tl{
+ background-position: -12px 0;
+}
+.x-toolbar .x-btn-click .x-btn-tr, .x-toolbar .x-btn-menu-active .x-btn-tr, .x-toolbar .x-btn-pressed .x-btn-tr{
+ background-position: -15px 0;
+}
+.x-toolbar .x-btn-click .x-btn-tc, .x-toolbar .x-btn-menu-active .x-btn-tc, .x-toolbar .x-btn-pressed .x-btn-tc{
+ background-position: 0 -12px;
+}
+
+.x-toolbar .x-btn-click .x-btn-ml, .x-toolbar .x-btn-menu-active .x-btn-ml, .x-toolbar .x-btn-pressed .x-btn-ml{
+ background-position: -12px -24px;
+}
+.x-toolbar .x-btn-click .x-btn-mr, .x-toolbar .x-btn-menu-active .x-btn-mr, .x-toolbar .x-btn-pressed .x-btn-mr{
+ background-position: -15px -24px;
+}
+
+.x-toolbar .x-btn-click .x-btn-mc, .x-toolbar .x-btn-menu-active .x-btn-mc, .x-toolbar .x-btn-pressed .x-btn-mc{
+ background-position: 0 -3240px;
+}
+.x-toolbar .x-btn-click .x-btn-bl, .x-toolbar .x-btn-menu-active .x-btn-bl, .x-toolbar .x-btn-pressed .x-btn-bl{
+ background-position: -12px -3px;
+}
+.x-toolbar .x-btn-click .x-btn-br, .x-toolbar .x-btn-menu-active .x-toolbar .x-btn-br, .x-toolbar .x-btn-pressed .x-btn-br{
+ background-position: -15px -3px;
+}
+.x-toolbar .x-btn-click .x-btn-bc, .x-toolbar .x-btn-menu-active .x-btn-bc, .x-toolbar .x-btn-pressed .x-btn-bc{
+ background-position: 0 -21px;
+}
+
+/* Button groups */
+
+.x-btn-group-header {
+ color: #777;
+}
+.x-btn-group-tc {
+ background-image:url(../images/gray/button/group-tb.gif);
+}
+.x-btn-group-tl {
+ background-image:url(../images/gray/button/group-cs.gif);
+}
+.x-btn-group-tr {
+ background-image:url(../images/gray/button/group-cs.gif);
+}
+.x-btn-group-bc {
+ background-image:url(../images/gray/button/group-tb.gif);
+}
+.x-btn-group-bl {
+ background-image:url(../images/gray/button/group-cs.gif);
+}
+.x-btn-group-br {
+ background-image:url(../images/gray/button/group-cs.gif);
+}
+.x-btn-group-ml {
+ background-image:url(../images/gray/button/group-lr.gif);
+}
+.x-btn-group-mr {
+ background-image:url(../images/gray/button/group-lr.gif);
+}
+.x-btn-group-notitle .x-btn-group-tc {
+ background-image:url(../images/gray/button/group-tb.gif);
+}
+
+/* menu */
+
+.x-menu {
+ border-color:#aaa;
+}
+
/* Layout classes */
.x-border-layout-ct {
@@ -157,7 +284,7 @@
.x-toolbar{
border-color:#d0d0d0;
- background:#f0f4f5 url(../images/gray/toolbar/bg.gif) repeat-x top left;
+ background:#eee url(../images/gray/toolbar/gray-bg.gif) repeat-x top left;
}
.x-toolbar button {
color:#444;
@@ -168,28 +295,9 @@
.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button {
background-image:url(../images/gray/toolbar/btn-arrow.gif);
}
-.x-toolbar .x-btn-over .x-btn-left{
- background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
-}
-.x-toolbar .x-btn-over .x-btn-right{
- background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
-}
-.x-toolbar .x-btn-over .x-btn-center{
- background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
-}
.x-toolbar .x-btn-over button {
color:#111;
}
-.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{
- background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
-}
-.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{
- background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
-}
-
-.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{
- background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
-}
.x-toolbar .xtb-sep {
background-image: url(../images/default/grid/grid-split.gif);
}
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/default/button/btn.gif
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/default/panel/tool-sprites.gif
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/default/panel/tools-sprites-trans.gif
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/default/window/left-corners.png
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/default/window/left-right.png
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/default/window/right-corners.png
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/default/window/top-bottom.png
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/gray/button/group-cs.gif
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/gray/panel/corners-sprite.gif
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/gray/panel/left-right.gif
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/gray/panel/top-bottom.gif
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/resources/images/gray/toolbar/gray-bg.gif
===================================================================
(Binary files differ)
Modified: mickael/trunk/ext/v3.0.0-a1/source/core/Ext.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/core/Ext.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/core/Ext.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -478,7 +478,7 @@
* @return {Number} Value, if numeric, else defaultValue
*/
num : function(v, defaultValue){
- if(typeof v != 'number'){
+ if(typeof v != 'number' || isNaN(v)){
return defaultValue;
}
return v;
@@ -754,7 +754,7 @@
})();
Ext.ns("Ext", "Ext.util", "Ext.grid", "Ext.dd", "Ext.tree", "Ext.data",
- "Ext.form", "Ext.menu", "Ext.state", "Ext.lib", "Ext.layout", "Ext.app", "Ext.ux", "Ext.chart");
+ "Ext.form", "Ext.menu", "Ext.state", "Ext.lib", "Ext.layout", "Ext.app", "Ext.ux", "Ext.chart", "Ext.direct");
/**
Modified: mickael/trunk/ext/v3.0.0-a1/source/data/Direct.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/data/Direct.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/data/Direct.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -6,9 +6,17 @@
* http://extjs.com/license
*/
+/*
+ * Ext JS Library 3.0 Pre-alpha
+ * Copyright(c) 2006-2008, Ext JS, LLC.
+ * licensing@xxxxxxxxx
+ *
+ * http://extjs.com/license
+ */
+
(function(){
var transactions = {}, TID = 0, impl, d, pollStartTimer = 0,
- callBuffer = [], callTask, providers = {};
+ callBuffer = [], callTask;
var get = function(id){
return transactions[id] || {};
@@ -106,17 +114,16 @@
}
var cb = function(opt, success, xhr){
+ if(opt && opt.poll){
+ Ext.Direct.fireEvent('poll', xhr, success);
+ }
if(success){
var data = null;
if(!Ext.isEmpty(xhr.responseText)){
- if(typeof xhr.responseText == 'object'){
- data = xhr.responseText;
- }else{
- try{
- data = Ext.decode(xhr.responseText);
- } catch(e){
- return handleException(opt, xhr, d.exceptions.PARSE);
- }
+ try{
+ data = Ext.decode(xhr.responseText);
+ } catch(e){
+ return handleException(opt, xhr, d.exceptions.PARSE);
}
if(Ext.isArray(data)){
for(var i = 0, len = data.length; i < len; i++){
@@ -253,20 +260,6 @@
return f;
}
- var onProviderData = function(p, e){
- switch(e.format){
- case 'string':
- cb({}, true, {responseText: e.data});
- break;
- default:
- cb({}, true, e.data);
- }
- }
-
- var onProviderException = function(p, e){
- handleException({}, e.data, e.type);
- }
-
impl = Ext.extend(Ext.util.Observable, {
exceptions: {
TRANSPORT: 'xhr',
@@ -277,7 +270,7 @@
constructor: function(){
impl.superclass.constructor.call(this);
- this.addEvents('beforecall', 'call', 'beforeevent', 'event', 'exception');
+ this.addEvents('beforecall', 'call', 'beforeevent', 'event', 'exception', 'connect', 'disconnect', 'pollstart', 'pollstop');
},
defineAPI : function(data){
@@ -293,7 +286,6 @@
}
},
- /*
startPoll : function(){
clearTimeout(pollStartTimer);
if(!this.poller){
@@ -321,16 +313,12 @@
delete this.poller;
Ext.Direct.fireEvent('stoppolling');
}
- },*/
+ },
inject : function(stringData, opt){
cb(opt || {}, true, {responseText: stringData});
},
- injectRaw : function(opt, success, xhr){
- cb(opt, success, xhr);
- },
-
injectTransaction : function(callback){
var t = {
tid: ++TID,
@@ -342,7 +330,6 @@
return t;
},
- /*
startStreaming : function(startKeepAlive){
pollStartTimer = this.startPoll.defer(10000, this);
if(startKeepAlive === true){
@@ -367,47 +354,17 @@
scope: this
});
}).defer(100, this);
- },*/
-
- //autoReconnect: true,
- //pollInterval: 3000,
- //keepAliveInterval: 60000,
- //pollUrlFragment: '/poll',
- //pingUrlFragment: '/ping',
-
- addProvider : function(provider){
- if(!provider.events){
- provider = new d.PROVIDERS[provider.type](provider);
- }
- if(!provider.isConnected()){
- provider.connect();
- }
- provider.id = provider.id || Ext.id;
- providers[provider.id] = provider;
-
- provider.on('data', onProviderData);
- provider.on('exception', onProviderException);
-
- return provider;
},
- getProvider : function(id){
- return providers[id];
- },
-
- removeProvider : function(id){
- var provider = id.id ? id : providers[id.id];
- provider.un('data', onProviderData);
- provider.un('exception', onProviderException);
- delete providers[provider.id];
- return provider;
- },
-
+ autoReconnect: true,
+ pollInterval: 3000,
+ keepAliveInterval: 60000,
+ pollUrlFragment: '/poll',
+ pingUrlFragment: '/ping',
enableBuffer: 10
});
Ext.Direct = d = new impl();
- d.PROVIDERS = {};
var reconnId = 0;
var retryId = 0;
Modified: mickael/trunk/ext/v3.0.0-a1/source/data/DirectProxy.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/data/DirectProxy.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/data/DirectProxy.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -19,7 +19,7 @@
paramOrder: undefined,
paramsAsHash: true,
directFn: undefined,
-
+
load: function(params, reader, cb, scope, arg){
if(this.fireEvent("beforeload", this, params) !== false) {
var args = [];
@@ -32,7 +32,7 @@
}
args.push({
callback: function(result, e){
- if(!e.success){
+ if(!e.status){
this.fireEvent("loadexception", this, e, result);
cb.call(scope, null, arg, false);
return;
Modified: mickael/trunk/ext/v3.0.0-a1/source/ext.jsb
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/ext.jsb 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/ext.jsb 2008-11-21 14:33:19 UTC (rev 31)
@@ -29,8 +29,6 @@
<include name="core\Fx.js" />
<include name="core\CompositeElement.js" />
<include name="data\Connection.js" />
- <include name="data\Direct.js" />
- <include name="data\DirectProvider.js" />
<include name="core\UpdateManager.js" />
<include name="util\Date.js" />
<include name="util\DelayedTask.js" />
@@ -61,17 +59,24 @@
<include name="data\SimpleStore.js" />
<include name="data\JsonStore.js" />
<include name="data\XmlStore.js" />
- <include name="data\DirectStore.js" />
<include name="data\DataField.js" />
<include name="data\DataReader.js" />
<include name="data\DataProxy.js" />
<include name="data\MemoryProxy.js" />
<include name="data\HttpProxy.js" />
<include name="data\ScriptTagProxy.js" />
- <include name="data\DirectProxy.js" />
<include name="data\JsonReader.js" />
<include name="data\XmlReader.js" />
<include name="data\ArrayReader.js" />
+ <include name="direct\Direct.js" />
+ <include name="direct\Transaction.js" />
+ <include name="direct\Event.js" />
+ <include name="direct\Provider.js" />
+ <include name="direct\JsonProvider.js" />
+ <include name="direct\PollingProvider.js" />
+ <include name="direct\RemotingProvider.js" />
+ <include name="data\DirectProxy.js" />
+ <include name="data\DirectStore.js" />
<include name="data\Tree.js" />
<include name="data\GroupingStore.js" />
<include name="widgets\Component.js" />
@@ -149,6 +154,7 @@
<include name="widgets\form\TextArea.js" />
<include name="widgets\form\NumberField.js" />
<include name="widgets\form\DateField.js" />
+ <include name="widgets\form\DisplayField.js" />
<include name="widgets\form\Combo.js" />
<include name="widgets\form\Checkbox.js" />
<include name="widgets\form\CheckboxGroup.js" />
@@ -553,6 +559,8 @@
<file name="widgets\ListView.js" path="widgets" />
<file name="ext.jsb" path="" />
<file name="license.txt" path="" />
+ <file name="data\Direct.js" path="data" />
+ <file name="data\DirectProvider.js" path="data" />
<file name="adapter\ext-base.js" path="adapter" />
<file name="adapter\jquery-bridge.js" path="adapter" />
<file name="adapter\prototype-bridge.js" path="adapter" />
@@ -577,8 +585,6 @@
<file name="data\DataField.js" path="data" />
<file name="data\DataProxy.js" path="data" />
<file name="data\DataReader.js" path="data" />
- <file name="data\Direct.js" path="data" />
- <file name="data\DirectProvider.js" path="data" />
<file name="data\DirectProxy.js" path="data" />
<file name="data\DirectStore.js" path="data" />
<file name="data\GroupingStore.js" path="data" />
@@ -604,6 +610,13 @@
<file name="dd\Registry.js" path="dd" />
<file name="dd\ScrollManager.js" path="dd" />
<file name="dd\StatusProxy.js" path="dd" />
+ <file name="direct\Direct.js" path="direct" />
+ <file name="direct\Event.js" path="direct" />
+ <file name="direct\JsonProvider.js" path="direct" />
+ <file name="direct\PollingProvider.js" path="direct" />
+ <file name="direct\Provider.js" path="direct" />
+ <file name="direct\RemotingProvider.js" path="direct" />
+ <file name="direct\Transaction.js" path="direct" />
<file name="locale\ext-lang-af.js" path="locale" />
<file name="locale\ext-lang-bg.js" path="locale" />
<file name="locale\ext-lang-ca.js" path="locale" />
@@ -676,6 +689,7 @@
<file name="widgets\form\CheckboxGroup.js" path="widgets\form" />
<file name="widgets\form\Combo.js" path="widgets\form" />
<file name="widgets\form\DateField.js" path="widgets\form" />
+ <file name="widgets\form\DisplayField.js" path="widgets\form" />
<file name="widgets\form\Field.js" path="widgets\form" />
<file name="widgets\form\FieldSet.js" path="widgets\form" />
<file name="widgets\form\Form.js" path="widgets\form" />
Modified: mickael/trunk/ext/v3.0.0-a1/source/util/Date.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/util/Date.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/util/Date.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -108,6 +108,18 @@
*/
(function() {
+
+// create private copy of Ext's String.format() method
+// - to remove unnecessary dependency
+// - to resolve namespace conflict with M$-Ajax's implementation
+function xf(format) {
+ var args = Array.prototype.slice.call(arguments, 1);
+ return format.replace(/\{(\d+)\}/g, function(m, i) {
+ return args[i];
+ });
+}
+
+
// private
Date.formatCodeToRegex = function(character, currentGroup) {
// Note: currentGroup - position in regex result array (see notes for Date.parseCodes below)
@@ -119,7 +131,7 @@
}
return p? Ext.applyIf({
- c: p.c? String.format(p.c, currentGroup || "{0}") : p.c
+ c: p.c? xf(p.c, currentGroup || "{0}") : p.c
}, p) : {
g:0,
c:null,
@@ -446,48 +458,19 @@
},
// private
- createParser : function(format) {
- var funcName = "parse" + Date.parseFunctions.count++,
- regexNum = Date.parseRegexes.length,
- currentGroup = 1,
- code = [
- "Date." + funcName + " = function(input){",
- "var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;",
- "input = String(input);",
- "d = new Date();",
- "y = d.getFullYear();",
- "m = d.getMonth();",
- "d = d.getDate();",
- "var results = input.match(Date.parseRegexes[" + regexNum + "]);",
- "if (results && results.length > 0) {\n"
- ].join('\n'),
- regex = "",
- special = false,
- ch = '';
-
- Date.parseFunctions[format] = funcName;
-
- for (var i = 0; i < format.length; ++i) {
- ch = format.charAt(i);
- if (!special && ch == "\\") {
- special = true;
- }
- else if (special) {
- special = false;
- regex += String.escape(ch);
- }
- else {
- var obj = Date.formatCodeToRegex(ch, currentGroup);
- currentGroup += obj.g;
- regex += obj.s;
- if (obj.g && obj.c) {
- code += obj.c;
- }
- }
- }
-
- code += [
- "if (u){",
+ createParser : function() {
+ var code = [
+ "Date.{0} = function(input){",
+ "var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;",
+ "input = String(input);",
+ "d = new Date();",
+ "y = d.getFullYear();",
+ "m = d.getMonth();",
+ "d = d.getDate();",
+ "var results = input.match(Date.parseRegexes[{1}]);",
+ "if(results && results.length > 0){",
+ "{2}",
+ "if(u){",
"v = new Date(u * 1000);", // give top priority to UNIX time
"}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){",
"v = new Date(y, m, d, h, i, s, ms);",
@@ -511,10 +494,41 @@
"}"
].join('\n');
- Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$", "i");
- eval(code);
- },
+ return function(format) {
+ var funcName = "parse" + Date.parseFunctions.count++,
+ regexNum = Date.parseRegexes.length,
+ currentGroup = 1,
+ calc = "",
+ regex = "",
+ special = false,
+ ch = "";
+ Date.parseFunctions[format] = funcName;
+
+ for (var i = 0; i < format.length; ++i) {
+ ch = format.charAt(i);
+ if (!special && ch == "\\") {
+ special = true;
+ }
+ else if (special) {
+ special = false;
+ regex += String.escape(ch);
+ }
+ else {
+ var obj = $f(ch, currentGroup);
+ currentGroup += obj.g;
+ regex += obj.s;
+ if (obj.g && obj.c) {
+ calc += obj.c;
+ }
+ }
+ }
+
+ Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$", "i");
+ eval(xf(code, funcName, regexNum, calc));
+ }
+ }(),
+
// private
parseCodes : {
/*
@@ -566,7 +580,7 @@
z: {
g:0,
c:null,
- s:"(?:\\d{1,3}" // day of the year (0 - 364 (365 in leap years))
+ s:"(?:\\d{1,3})" // day of the year (0 - 364 (365 in leap years))
},
W: {
g:0,
@@ -810,7 +824,7 @@
// adapted from http://www.merlyn.demon.co.uk/weekcalc.htm
var ms1d = 864e5, // milliseconds in a day
ms7d = 7 * ms1d; // milliseconds in a week
-
+
return function() { // return a closure so constants get calculated only once
var DC3 = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate() + 3) / ms1d, // an Absolute Day Number
AWN = Math.floor(DC3 / 7), // an Absolute Week Number
Modified: mickael/trunk/ext/v3.0.0-a1/source/util/History.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/util/History.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/util/History.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -87,7 +87,7 @@
}
function startUp() {
- currentToken = hiddenField.value;
+ currentToken = hiddenField.value ? hiddenField.value : getHash();
if (Ext.isIE) {
checkIFrame();
Modified: mickael/trunk/ext/v3.0.0-a1/source/util/MixedCollection.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/util/MixedCollection.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/util/MixedCollection.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -554,7 +554,7 @@
},
/**
- * Creates a duplicate of this collection
+ * Creates a shallow copy of this collection
* @return {MixedCollection}
*/
clone : function(){
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/ComponentMgr.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/ComponentMgr.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/ComponentMgr.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -95,6 +95,7 @@
* @param config {Object} A configuration object for the Component you wish to create.
* @param defaultType {Constructor} The constructor to provide the default Component type if
* the config object does not contain an xtype. (Optional if the config contains an xtype).
+ * @return {Ext.Component} The newly instantiated Component.
*/
create : function(config, defaultType){
return config.render ? config : new types[config.xtype || defaultType](config);
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/Editor.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/Editor.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/Editor.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -12,18 +12,27 @@
* A base editor field that handles displaying/hiding on demand and has some built-in sizing and event handling logic.
* @constructor
* Create a new Editor
- * @param {Ext.form.Field} field The Field object (or descendant)
* @param {Object} config The config object
*/
Ext.Editor = function(field, config){
- this.field = field;
+ if(field.field){
+ this.field = Ext.create(field.field, 'textfield');
+ config = Ext.apply({}, field); // copy so we don't disturb original config
+ delete config.field;
+ }else{
+ this.field = field;
+ }
Ext.Editor.superclass.constructor.call(this, config);
};
Ext.extend(Ext.Editor, Ext.Component, {
/**
+ * @cfg {Ext.form.Field} field
+ * The Field object (or descendant) or config object for field
+ */
+ /**
* @cfg {Boolean/String} autoSize
- * True for the editor to automatically adopt the size of the underlying field, "width" to adopt the width only,
+ * True for the editor to automatically adopt the size of the element being edited, "width" to adopt the width only,
* or "height" to adopt the height only (defaults to false)
*/
/**
@@ -141,10 +150,13 @@
cls: "x-editor",
parentEl : ct,
shim : this.shim,
- shadowOffset:4,
+ shadowOffset: this.shadowOffset || 4,
id: this.id,
constrain: this.constrain
});
+ if(this.zIndex){
+ this.el.setZIndex(this.zIndex);
+ }
this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden");
if(this.field.msgTarget != 'title'){
this.field.msgTarget = 'qtip';
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/Layer.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/Layer.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/Layer.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -6,448 +6,448 @@
* http://extjs.com/license
*/
-/**
- * @class Ext.Layer
- * @extends Ext.Element
- * An extended {@link Ext.Element} object that supports a shadow and shim, constrain to viewport and
- * automatic maintaining of shadow/shim positions.
- * @cfg {Boolean} shim False to disable the iframe shim in browsers which need one (defaults to true)
- * @cfg {String/Boolean} shadow True to create a shadow element with default class "x-layer-shadow", or
- * you can pass a string with a CSS class name. False turns off the shadow.
- * @cfg {Object} dh DomHelper object config to create element with (defaults to {tag: "div", cls: "x-layer"}).
- * @cfg {Boolean} constrain False to disable constrain to viewport (defaults to true)
- * @cfg {String} cls CSS class to add to the element
- * @cfg {Number} zindex Starting z-index (defaults to 11000)
- * @cfg {Number} shadowOffset Number of pixels to offset the shadow (defaults to 3)
- * @constructor
- * @param {Object} config An object with config options.
- * @param {String/HTMLElement} existingEl (optional) Uses an existing DOM element. If the element is not found it creates it.
- */
-(function(){
-Ext.Layer = function(config, existingEl){
- config = config || {};
- var dh = Ext.DomHelper;
- var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body;
- if(existingEl){
- this.dom = Ext.getDom(existingEl);
- }
- if(!this.dom){
- var o = config.dh || {tag: "div", cls: "x-layer"};
- this.dom = dh.append(pel, o);
- }
- if(config.cls){
- this.addClass(config.cls);
- }
- this.constrain = config.constrain !== false;
- this.visibilityMode = Ext.Element.VISIBILITY;
- if(config.id){
- this.id = this.dom.id = config.id;
- }else{
- this.id = Ext.id(this.dom);
- }
- this.zindex = config.zindex || this.getZIndex();
- this.position("absolute", this.zindex);
- if(config.shadow){
- this.shadowOffset = config.shadowOffset || 4;
- this.shadow = new Ext.Shadow({
- offset : this.shadowOffset,
- mode : config.shadow
- });
- }else{
- this.shadowOffset = 0;
- }
- this.useShim = config.shim !== false && Ext.useShims;
- this.useDisplay = config.useDisplay;
- this.hide();
-};
-
-var supr = Ext.Element.prototype;
-
-// shims are shared among layer to keep from having 100 iframes
-var shims = [];
-
-Ext.extend(Ext.Layer, Ext.Element, {
-
- getZIndex : function(){
- return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000;
- },
-
- getShim : function(){
- if(!this.useShim){
- return null;
- }
- if(this.shim){
- return this.shim;
- }
- var shim = shims.shift();
- if(!shim){
- shim = this.createShim();
- shim.enableDisplayMode('block');
- shim.dom.style.display = 'none';
- shim.dom.style.visibility = 'visible';
- }
- var pn = this.dom.parentNode;
- if(shim.dom.parentNode != pn){
- pn.insertBefore(shim.dom, this.dom);
- }
- shim.setStyle('z-index', this.getZIndex()-2);
- this.shim = shim;
- return shim;
- },
-
- hideShim : function(){
- if(this.shim){
- this.shim.setDisplayed(false);
- shims.push(this.shim);
- delete this.shim;
- }
- },
-
- disableShadow : function(){
- if(this.shadow){
- this.shadowDisabled = true;
- this.shadow.hide();
- this.lastShadowOffset = this.shadowOffset;
- this.shadowOffset = 0;
- }
- },
-
- enableShadow : function(show){
- if(this.shadow){
- this.shadowDisabled = false;
- this.shadowOffset = this.lastShadowOffset;
- delete this.lastShadowOffset;
- if(show){
- this.sync(true);
- }
- }
- },
-
- // private
- // this code can execute repeatedly in milliseconds (i.e. during a drag) so
- // code size was sacrificed for effeciency (e.g. no getBox/setBox, no XY calls)
- sync : function(doShow){
- var sw = this.shadow;
- if(!this.updating && this.isVisible() && (sw || this.useShim)){
- var sh = this.getShim();
-
- var w = this.getWidth(),
- h = this.getHeight();
-
- var l = this.getLeft(true),
- t = this.getTop(true);
-
- if(sw && !this.shadowDisabled){
- if(doShow && !sw.isVisible()){
- sw.show(this);
- }else{
- sw.realign(l, t, w, h);
- }
- if(sh){
- if(doShow){
- sh.show();
- }
- // fit the shim behind the shadow, so it is shimmed too
- var a = sw.adjusts, s = sh.dom.style;
- s.left = (Math.min(l, l+a.l))+"px";
- s.top = (Math.min(t, t+a.t))+"px";
- s.width = (w+a.w)+"px";
- s.height = (h+a.h)+"px";
- }
- }else if(sh){
- if(doShow){
- sh.show();
- }
- sh.setSize(w, h);
- sh.setLeftTop(l, t);
- }
-
- }
- },
-
- // private
- destroy : function(){
- this.hideShim();
- if(this.shadow){
- this.shadow.hide();
- }
- this.removeAllListeners();
- Ext.removeNode(this.dom);
- Ext.Element.uncache(this.id);
- },
-
- remove : function(){
- this.destroy();
- },
-
- // private
- beginUpdate : function(){
- this.updating = true;
- },
-
- // private
- endUpdate : function(){
- this.updating = false;
- this.sync(true);
- },
-
- // private
- hideUnders : function(negOffset){
- if(this.shadow){
- this.shadow.hide();
- }
- this.hideShim();
- },
-
- // private
- constrainXY : function(){
- if(this.constrain){
- var vw = Ext.lib.Dom.getViewWidth(),
- vh = Ext.lib.Dom.getViewHeight();
- var s = Ext.getDoc().getScroll();
-
- var xy = this.getXY();
- var x = xy[0], y = xy[1];
- var so = this.shadowOffset;
- var w = this.dom.offsetWidth+so, h = this.dom.offsetHeight+so;
- // only move it if it needs it
- var moved = false;
- // first validate right/bottom
- if((x + w) > vw+s.left){
- x = vw - w - so;
- moved = true;
- }
- if((y + h) > vh+s.top){
- y = vh - h - so;
- moved = true;
- }
- // then make sure top/left isn't negative
- if(x < s.left){
- x = s.left;
- moved = true;
- }
- if(y < s.top){
- y = s.top;
- moved = true;
- }
- if(moved){
- if(this.avoidY){
- var ay = this.avoidY;
- if(y <= ay && (y+h) >= ay){
- y = ay-h-5;
- }
- }
- xy = [x, y];
- this.storeXY(xy);
- supr.setXY.call(this, xy);
- this.sync();
- }
- }
- },
-
- isVisible : function(){
- return this.visible;
- },
-
- // private
- showAction : function(){
- this.visible = true; // track visibility to prevent getStyle calls
- if(this.useDisplay === true){
- this.setDisplayed("");
- }else if(this.lastXY){
- supr.setXY.call(this, this.lastXY);
- }else if(this.lastLT){
- supr.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]);
- }
- },
-
- // private
- hideAction : function(){
- this.visible = false;
- if(this.useDisplay === true){
- this.setDisplayed(false);
- }else{
- this.setLeftTop(-10000,-10000);
- }
- },
-
- // overridden Element method
- setVisible : function(v, a, d, c, e){
- if(v){
- this.showAction();
- }
- if(a && v){
- var cb = function(){
- this.sync(true);
- if(c){
- c();
- }
- }.createDelegate(this);
- supr.setVisible.call(this, true, true, d, cb, e);
- }else{
- if(!v){
- this.hideUnders(true);
- }
- var cb = c;
- if(a){
- cb = function(){
- this.hideAction();
- if(c){
- c();
- }
- }.createDelegate(this);
- }
- supr.setVisible.call(this, v, a, d, cb, e);
- if(v){
- this.sync(true);
- }else if(!a){
- this.hideAction();
- }
- }
- },
-
- storeXY : function(xy){
- delete this.lastLT;
- this.lastXY = xy;
- },
-
- storeLeftTop : function(left, top){
- delete this.lastXY;
- this.lastLT = [left, top];
- },
-
- // private
- beforeFx : function(){
- this.beforeAction();
- return Ext.Layer.superclass.beforeFx.apply(this, arguments);
- },
-
- // private
- afterFx : function(){
- Ext.Layer.superclass.afterFx.apply(this, arguments);
- this.sync(this.isVisible());
- },
-
- // private
- beforeAction : function(){
- if(!this.updating && this.shadow){
- this.shadow.hide();
- }
- },
-
- // overridden Element method
- setLeft : function(left){
- this.storeLeftTop(left, this.getTop(true));
- supr.setLeft.apply(this, arguments);
- this.sync();
- },
-
- setTop : function(top){
- this.storeLeftTop(this.getLeft(true), top);
- supr.setTop.apply(this, arguments);
- this.sync();
- },
-
- setLeftTop : function(left, top){
- this.storeLeftTop(left, top);
- supr.setLeftTop.apply(this, arguments);
- this.sync();
- },
-
- setXY : function(xy, a, d, c, e){
- this.fixDisplay();
- this.beforeAction();
- this.storeXY(xy);
- var cb = this.createCB(c);
- supr.setXY.call(this, xy, a, d, cb, e);
- if(!a){
- cb();
- }
- },
-
- // private
- createCB : function(c){
- var el = this;
- return function(){
- el.constrainXY();
- el.sync(true);
- if(c){
- c();
- }
- };
- },
-
- // overridden Element method
- setX : function(x, a, d, c, e){
- this.setXY([x, this.getY()], a, d, c, e);
- },
-
- // overridden Element method
- setY : function(y, a, d, c, e){
- this.setXY([this.getX(), y], a, d, c, e);
- },
-
- // overridden Element method
- setSize : function(w, h, a, d, c, e){
- this.beforeAction();
- var cb = this.createCB(c);
- supr.setSize.call(this, w, h, a, d, cb, e);
- if(!a){
- cb();
- }
- },
-
- // overridden Element method
- setWidth : function(w, a, d, c, e){
- this.beforeAction();
- var cb = this.createCB(c);
- supr.setWidth.call(this, w, a, d, cb, e);
- if(!a){
- cb();
- }
- },
-
- // overridden Element method
- setHeight : function(h, a, d, c, e){
- this.beforeAction();
- var cb = this.createCB(c);
- supr.setHeight.call(this, h, a, d, cb, e);
- if(!a){
- cb();
- }
- },
-
- // overridden Element method
- setBounds : function(x, y, w, h, a, d, c, e){
- this.beforeAction();
- var cb = this.createCB(c);
- if(!a){
- this.storeXY([x, y]);
- supr.setXY.call(this, [x, y]);
- supr.setSize.call(this, w, h, a, d, cb, e);
- cb();
- }else{
- supr.setBounds.call(this, x, y, w, h, a, d, cb, e);
- }
- return this;
- },
-
- /**
- * Sets the z-index of this layer and adjusts any shadow and shim z-indexes. The layer z-index is automatically
- * incremented by two more than the value passed in so that it always shows above any shadow or shim (the shadow
- * element, if any, will be assigned z-index + 1, and the shim element, if any, will be assigned the unmodified z-index).
- * @param {Number} zindex The new z-index to set
- * @return {this} The Layer
- */
- setZIndex : function(zindex){
- this.zindex = zindex;
- this.setStyle("z-index", zindex + 2);
- if(this.shadow){
- this.shadow.setZIndex(zindex + 1);
- }
- if(this.shim){
- this.shim.setStyle("z-index", zindex);
- }
- }
-});
+/**
+ * @class Ext.Layer
+ * @extends Ext.Element
+ * An extended {@link Ext.Element} object that supports a shadow and shim, constrain to viewport and
+ * automatic maintaining of shadow/shim positions.
+ * @cfg {Boolean} shim False to disable the iframe shim in browsers which need one (defaults to true)
+ * @cfg {String/Boolean} shadow True to automatically create an {@link Ext.Shadow}, or a string indicating the
+ * shadow's display {@link Ext.Shadow#mode}. False to disable the shadow. (defaults to false)
+ * @cfg {Object} dh DomHelper object config to create element with (defaults to {tag: "div", cls: "x-layer"}).
+ * @cfg {Boolean} constrain False to disable constrain to viewport (defaults to true)
+ * @cfg {String} cls CSS class to add to the element
+ * @cfg {Number} zindex Starting z-index (defaults to 11000)
+ * @cfg {Number} shadowOffset Number of pixels to offset the shadow (defaults to 3)
+ * @constructor
+ * @param {Object} config An object with config options.
+ * @param {String/HTMLElement} existingEl (optional) Uses an existing DOM element. If the element is not found it creates it.
+ */
+(function(){
+Ext.Layer = function(config, existingEl){
+ config = config || {};
+ var dh = Ext.DomHelper;
+ var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body;
+ if(existingEl){
+ this.dom = Ext.getDom(existingEl);
+ }
+ if(!this.dom){
+ var o = config.dh || {tag: "div", cls: "x-layer"};
+ this.dom = dh.append(pel, o);
+ }
+ if(config.cls){
+ this.addClass(config.cls);
+ }
+ this.constrain = config.constrain !== false;
+ this.visibilityMode = Ext.Element.VISIBILITY;
+ if(config.id){
+ this.id = this.dom.id = config.id;
+ }else{
+ this.id = Ext.id(this.dom);
+ }
+ this.zindex = config.zindex || this.getZIndex();
+ this.position("absolute", this.zindex);
+ if(config.shadow){
+ this.shadowOffset = config.shadowOffset || 4;
+ this.shadow = new Ext.Shadow({
+ offset : this.shadowOffset,
+ mode : config.shadow
+ });
+ }else{
+ this.shadowOffset = 0;
+ }
+ this.useShim = config.shim !== false && Ext.useShims;
+ this.useDisplay = config.useDisplay;
+ this.hide();
+};
+
+var supr = Ext.Element.prototype;
+
+// shims are shared among layer to keep from having 100 iframes
+var shims = [];
+
+Ext.extend(Ext.Layer, Ext.Element, {
+
+ getZIndex : function(){
+ return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000;
+ },
+
+ getShim : function(){
+ if(!this.useShim){
+ return null;
+ }
+ if(this.shim){
+ return this.shim;
+ }
+ var shim = shims.shift();
+ if(!shim){
+ shim = this.createShim();
+ shim.enableDisplayMode('block');
+ shim.dom.style.display = 'none';
+ shim.dom.style.visibility = 'visible';
+ }
+ var pn = this.dom.parentNode;
+ if(shim.dom.parentNode != pn){
+ pn.insertBefore(shim.dom, this.dom);
+ }
+ shim.setStyle('z-index', this.getZIndex()-2);
+ this.shim = shim;
+ return shim;
+ },
+
+ hideShim : function(){
+ if(this.shim){
+ this.shim.setDisplayed(false);
+ shims.push(this.shim);
+ delete this.shim;
+ }
+ },
+
+ disableShadow : function(){
+ if(this.shadow){
+ this.shadowDisabled = true;
+ this.shadow.hide();
+ this.lastShadowOffset = this.shadowOffset;
+ this.shadowOffset = 0;
+ }
+ },
+
+ enableShadow : function(show){
+ if(this.shadow){
+ this.shadowDisabled = false;
+ this.shadowOffset = this.lastShadowOffset;
+ delete this.lastShadowOffset;
+ if(show){
+ this.sync(true);
+ }
+ }
+ },
+
+ // private
+ // this code can execute repeatedly in milliseconds (i.e. during a drag) so
+ // code size was sacrificed for effeciency (e.g. no getBox/setBox, no XY calls)
+ sync : function(doShow){
+ var sw = this.shadow;
+ if(!this.updating && this.isVisible() && (sw || this.useShim)){
+ var sh = this.getShim();
+
+ var w = this.getWidth(),
+ h = this.getHeight();
+
+ var l = this.getLeft(true),
+ t = this.getTop(true);
+
+ if(sw && !this.shadowDisabled){
+ if(doShow && !sw.isVisible()){
+ sw.show(this);
+ }else{
+ sw.realign(l, t, w, h);
+ }
+ if(sh){
+ if(doShow){
+ sh.show();
+ }
+ // fit the shim behind the shadow, so it is shimmed too
+ var a = sw.adjusts, s = sh.dom.style;
+ s.left = (Math.min(l, l+a.l))+"px";
+ s.top = (Math.min(t, t+a.t))+"px";
+ s.width = (w+a.w)+"px";
+ s.height = (h+a.h)+"px";
+ }
+ }else if(sh){
+ if(doShow){
+ sh.show();
+ }
+ sh.setSize(w, h);
+ sh.setLeftTop(l, t);
+ }
+
+ }
+ },
+
+ // private
+ destroy : function(){
+ this.hideShim();
+ if(this.shadow){
+ this.shadow.hide();
+ }
+ this.removeAllListeners();
+ Ext.removeNode(this.dom);
+ Ext.Element.uncache(this.id);
+ },
+
+ remove : function(){
+ this.destroy();
+ },
+
+ // private
+ beginUpdate : function(){
+ this.updating = true;
+ },
+
+ // private
+ endUpdate : function(){
+ this.updating = false;
+ this.sync(true);
+ },
+
+ // private
+ hideUnders : function(negOffset){
+ if(this.shadow){
+ this.shadow.hide();
+ }
+ this.hideShim();
+ },
+
+ // private
+ constrainXY : function(){
+ if(this.constrain){
+ var vw = Ext.lib.Dom.getViewWidth(),
+ vh = Ext.lib.Dom.getViewHeight();
+ var s = Ext.getDoc().getScroll();
+
+ var xy = this.getXY();
+ var x = xy[0], y = xy[1];
+ var so = this.shadowOffset;
+ var w = this.dom.offsetWidth+so, h = this.dom.offsetHeight+so;
+ // only move it if it needs it
+ var moved = false;
+ // first validate right/bottom
+ if((x + w) > vw+s.left){
+ x = vw - w - so;
+ moved = true;
+ }
+ if((y + h) > vh+s.top){
+ y = vh - h - so;
+ moved = true;
+ }
+ // then make sure top/left isn't negative
+ if(x < s.left){
+ x = s.left;
+ moved = true;
+ }
+ if(y < s.top){
+ y = s.top;
+ moved = true;
+ }
+ if(moved){
+ if(this.avoidY){
+ var ay = this.avoidY;
+ if(y <= ay && (y+h) >= ay){
+ y = ay-h-5;
+ }
+ }
+ xy = [x, y];
+ this.storeXY(xy);
+ supr.setXY.call(this, xy);
+ this.sync();
+ }
+ }
+ },
+
+ isVisible : function(){
+ return this.visible;
+ },
+
+ // private
+ showAction : function(){
+ this.visible = true; // track visibility to prevent getStyle calls
+ if(this.useDisplay === true){
+ this.setDisplayed("");
+ }else if(this.lastXY){
+ supr.setXY.call(this, this.lastXY);
+ }else if(this.lastLT){
+ supr.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]);
+ }
+ },
+
+ // private
+ hideAction : function(){
+ this.visible = false;
+ if(this.useDisplay === true){
+ this.setDisplayed(false);
+ }else{
+ this.setLeftTop(-10000,-10000);
+ }
+ },
+
+ // overridden Element method
+ setVisible : function(v, a, d, c, e){
+ if(v){
+ this.showAction();
+ }
+ if(a && v){
+ var cb = function(){
+ this.sync(true);
+ if(c){
+ c();
+ }
+ }.createDelegate(this);
+ supr.setVisible.call(this, true, true, d, cb, e);
+ }else{
+ if(!v){
+ this.hideUnders(true);
+ }
+ var cb = c;
+ if(a){
+ cb = function(){
+ this.hideAction();
+ if(c){
+ c();
+ }
+ }.createDelegate(this);
+ }
+ supr.setVisible.call(this, v, a, d, cb, e);
+ if(v){
+ this.sync(true);
+ }else if(!a){
+ this.hideAction();
+ }
+ }
+ },
+
+ storeXY : function(xy){
+ delete this.lastLT;
+ this.lastXY = xy;
+ },
+
+ storeLeftTop : function(left, top){
+ delete this.lastXY;
+ this.lastLT = [left, top];
+ },
+
+ // private
+ beforeFx : function(){
+ this.beforeAction();
+ return Ext.Layer.superclass.beforeFx.apply(this, arguments);
+ },
+
+ // private
+ afterFx : function(){
+ Ext.Layer.superclass.afterFx.apply(this, arguments);
+ this.sync(this.isVisible());
+ },
+
+ // private
+ beforeAction : function(){
+ if(!this.updating && this.shadow){
+ this.shadow.hide();
+ }
+ },
+
+ // overridden Element method
+ setLeft : function(left){
+ this.storeLeftTop(left, this.getTop(true));
+ supr.setLeft.apply(this, arguments);
+ this.sync();
+ },
+
+ setTop : function(top){
+ this.storeLeftTop(this.getLeft(true), top);
+ supr.setTop.apply(this, arguments);
+ this.sync();
+ },
+
+ setLeftTop : function(left, top){
+ this.storeLeftTop(left, top);
+ supr.setLeftTop.apply(this, arguments);
+ this.sync();
+ },
+
+ setXY : function(xy, a, d, c, e){
+ this.fixDisplay();
+ this.beforeAction();
+ this.storeXY(xy);
+ var cb = this.createCB(c);
+ supr.setXY.call(this, xy, a, d, cb, e);
+ if(!a){
+ cb();
+ }
+ },
+
+ // private
+ createCB : function(c){
+ var el = this;
+ return function(){
+ el.constrainXY();
+ el.sync(true);
+ if(c){
+ c();
+ }
+ };
+ },
+
+ // overridden Element method
+ setX : function(x, a, d, c, e){
+ this.setXY([x, this.getY()], a, d, c, e);
+ },
+
+ // overridden Element method
+ setY : function(y, a, d, c, e){
+ this.setXY([this.getX(), y], a, d, c, e);
+ },
+
+ // overridden Element method
+ setSize : function(w, h, a, d, c, e){
+ this.beforeAction();
+ var cb = this.createCB(c);
+ supr.setSize.call(this, w, h, a, d, cb, e);
+ if(!a){
+ cb();
+ }
+ },
+
+ // overridden Element method
+ setWidth : function(w, a, d, c, e){
+ this.beforeAction();
+ var cb = this.createCB(c);
+ supr.setWidth.call(this, w, a, d, cb, e);
+ if(!a){
+ cb();
+ }
+ },
+
+ // overridden Element method
+ setHeight : function(h, a, d, c, e){
+ this.beforeAction();
+ var cb = this.createCB(c);
+ supr.setHeight.call(this, h, a, d, cb, e);
+ if(!a){
+ cb();
+ }
+ },
+
+ // overridden Element method
+ setBounds : function(x, y, w, h, a, d, c, e){
+ this.beforeAction();
+ var cb = this.createCB(c);
+ if(!a){
+ this.storeXY([x, y]);
+ supr.setXY.call(this, [x, y]);
+ supr.setSize.call(this, w, h, a, d, cb, e);
+ cb();
+ }else{
+ supr.setBounds.call(this, x, y, w, h, a, d, cb, e);
+ }
+ return this;
+ },
+
+ /**
+ * Sets the z-index of this layer and adjusts any shadow and shim z-indexes. The layer z-index is automatically
+ * incremented by two more than the value passed in so that it always shows above any shadow or shim (the shadow
+ * element, if any, will be assigned z-index + 1, and the shim element, if any, will be assigned the unmodified z-index).
+ * @param {Number} zindex The new z-index to set
+ * @return {this} The Layer
+ */
+ setZIndex : function(zindex){
+ this.zindex = zindex;
+ this.setStyle("z-index", zindex + 2);
+ if(this.shadow){
+ this.shadow.setZIndex(zindex + 1);
+ }
+ if(this.shim){
+ this.shim.setStyle("z-index", zindex);
+ }
+ }
+});
})();
\ No newline at end of file
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/Panel.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/Panel.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/Panel.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -782,6 +782,7 @@
this.fbar.toolbarCls = 'x-panel-fbar';
var bct = this.footer.createChild({cls: 'x-panel-btns x-panel-btns-'+this.buttonAlign});
+ this.fbar.ownerCt = this;
this.fbar.render(bct);
bct.createChild({cls:'x-clear'});
}
@@ -932,6 +933,19 @@
}
},
+ doLayout : function(shallow){
+ Ext.Panel.superclass.doLayout.call(this, shallow);
+ if(this.topToolbar){
+ this.topToolbar.doLayout();
+ }
+ if(this.bottomToolbar){
+ this.bottomToolbar.doLayout();
+ }
+ if(this.fbar){
+ this.fbar.doLayout();
+ }
+ },
+
// private
onShow : function(){
if(this.floating){
@@ -1168,7 +1182,22 @@
if(w !== undefined || h !== undefined){
if(!this.collapsed){
if(typeof w == 'number'){
- w = this.adjustBodyWidth(w - this.getFrameWidth());
+ w = this.adjustBodyWidth(w - this.getFrameWidth());
+ if(this.tbar){
+ this.tbar.setWidth(w);
+ if(this.topToolbar){
+ this.topToolbar.setSize(w);
+ }
+ }
+ if(this.bbar){
+ this.bbar.setWidth(w);
+ if(this.bottomToolbar){
+ this.bottomToolbar.setSize(w);
+ }
+ }
+ if(this.fbar){
+ this.fbar.setSize(w - this.fbar.container.getFrameWidth('lr'));
+ }
this.body.setWidth(w);
}else if(w == 'auto'){
this.body.setWidth(w);
@@ -1176,24 +1205,11 @@
if(typeof h == 'number'){
h = this.adjustBodyHeight(h - this.getFrameHeight());
- this.body.setHeight(h);
+ this.body.setHeight(h);
}else if(h == 'auto'){
this.body.setHeight(h);
}
- if(this.tbar){
- this.tbar.setWidth(w);
- if(this.topToolbar){
- this.topToolbar.setSize(w);
- }
- }
- if(this.bbar){
- this.bbar.setWidth(w);
- if(this.bottomToolbar){
- this.bottomToolbar.setSize(w);
- }
- }
-
if(this.disabled && this.el._mask){
this.el._mask.setSize(this.el.dom.clientWidth, this.el.getHeight());
}
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/Window.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/Window.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/Window.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -242,6 +242,7 @@
this.mask = this.container.createChild({cls:"ext-el-mask"}, this.el.dom);
this.mask.enableDisplayMode("block");
this.mask.hide();
+ this.mask.on('click', this.focus, this);
}
},
@@ -399,14 +400,15 @@
focus : function(){
var f = this.focusEl, db = this.defaultButton, t = typeof db;
if(t != 'undefined'){
- if(t == 'number'){
- f = this.buttons[db];
+ if(t == 'number' && this.fbar){
+ f = this.fbar.items.get(db);
}else if(t == 'string'){
f = Ext.getCmp(db);
}else{
f = db;
}
}
+ f = f || this.focusEl;
f.focus.defer(10, f);
},
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/form/DateField.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/form/DateField.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/form/DateField.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -114,7 +114,7 @@
if(typeof this.maxValue == "string"){
this.maxValue = this.parseDate(this.maxValue);
}
- this.ddMatch = null;
+ this.disabledDatesRE = null;
this.initDisabledDays();
},
@@ -212,7 +212,7 @@
}
}
var fvalue = this.formatDate(value);
- if(this.ddMatch && this.ddMatch.test(fvalue)){
+ if(this.disabledDatesRE && this.disabledDatesRE.test(fvalue)){
this.markInvalid(String.format(this.disabledDatesText, fvalue));
return false;
}
@@ -324,7 +324,7 @@
Ext.apply(this.menu.picker, {
minDate : this.minValue,
maxDate : this.maxValue,
- disabledDatesRE : this.ddMatch,
+ disabledDatesRE : this.disabledDatesRE,
disabledDatesText : this.disabledDatesText,
disabledDays : this.disabledDays,
disabledDaysText : this.disabledDaysText,
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/form/Field.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/form/Field.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/form/Field.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -207,7 +207,7 @@
initValue : function(){
if(this.value !== undefined){
this.setValue(this.value);
- }else if(this.el.dom.value.length > 0 && this.el.dom.value != this.emptyText){
+ }else if(!Ext.isEmpty(this.el.dom.value) && this.el.dom.value != this.emptyText){
this.setValue(this.el.dom.value);
}
// reference to original value for reset
@@ -438,6 +438,11 @@
}
},
+ // private, does not work for all fields
+ append :function(v){
+ this.setValue([this.getValue(), v].join(''));
+ },
+
// private
adjustSize : function(w, h){
var s = Ext.form.Field.superclass.adjustSize.call(this, w, h);
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/form/Form.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/form/Form.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/form/Form.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -73,10 +73,6 @@
// private
initComponent :function(){
this.form = this.createForm();
- if(this.fileUpload) {
- this.bodyCfg.enctype = 'multipart/form-data';
- }
-
Ext.FormPanel.superclass.initComponent.call(this);
this.bodyCfg = {
@@ -85,7 +81,9 @@
method : this.method || 'POST',
id : this.formId || Ext.id()
};
-
+ if(this.fileUpload) {
+ this.bodyCfg.enctype = 'multipart/form-data';
+ }
this.initItems();
this.addEvents(
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/Column.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/Column.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/Column.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -10,16 +10,14 @@
Ext.apply(this, config);
if(typeof this.renderer == "string"){
- this.renderer = Ext.util.Format[c.renderer];
+ this.renderer = Ext.util.Format[this.renderer];
}
if(typeof this.id == "undefined"){
this.id = ++Ext.grid.Column.AUTO_ID;
}
if(this.editor){
- if(this.editor.isFormField){
- this.editor = new Ext.grid.GridEditor(this.editor);
- }else if(this.editor.xtype && !this.editor.events){
- this.editor = new Ext.grid.GridEditor(Ext.create(this.editor, 'textfield'));
+ if(this.editor.xtype && !this.editor.events){
+ this.editor = Ext.create(this.editor, 'textfield');
}
}
}
@@ -33,6 +31,25 @@
return " ";
}
return value;
+ },
+
+ getEditor: function(rowIndex){
+ return this.editable !== false ? this.editor : null;
+ },
+
+ getCellEditor: function(rowIndex){
+ var editor = this.getEditor(rowIndex);
+ if(editor){
+ if(!editor.startEdit){
+ if(!editor.gridEditor){
+ editor.gridEditor = new Ext.grid.GridEditor(editor);
+ }
+ return editor.gridEditor;
+ }else if(editor.startEdit){
+ return editor;
+ }
+ }
+ return null;
}
};
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/ColumnModel.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/ColumnModel.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/ColumnModel.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -188,6 +188,10 @@
return this.config[index].id;
},
+ getColumnAt : function(index){
+ return this.config[index];
+ },
+
/**
* Reconfigures this column model
* @param {Array} config Array of Column configs
@@ -505,7 +509,7 @@
* @return {Object}
*/
getCellEditor : function(colIndex, rowIndex){
- return this.config[colIndex].editor;
+ return this.config[colIndex].getCellEditor(rowIndex);
},
/**
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/EditorGrid.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/EditorGrid.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/EditorGrid.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -227,6 +227,10 @@
ed.record = r;
ed.on("complete", this.onEditComplete, this, {single: true});
ed.on("specialkey", this.selModel.onEditorKey, this.selModel);
+ /**
+ * The currently active editor or null
+ * @type Ext.Editor
+ */
this.activeEditor = ed;
var v = this.preEditValue(r, field);
ed.startEdit(this.view.getCell(row, col).firstChild, v === undefined ? '' : v);
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/GridPanel.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/GridPanel.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/GridPanel.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -494,8 +494,13 @@
},
/**
- * Reconfigures the grid to use a different Store and Column Model.
- * The View will be bound to the new objects and refreshed.
+ * <p>Reconfigures the grid to use a different Store and Column Model.
+ * The View will be bound to the new objects and refreshed.</p>
+ * <p>Be aware that upon reconfiguring a GridPanel, certain existing settings <i>may</i> become
+ * invalidated. For example the configured {@link #autoExpandColumn} may no longer exist in the
+ * new ColumnModel. Also, an existing {@link Ext.PagingToolbar PagingToolbar} will still be bound
+ * to the old Store, and will need rebinding. Any {@link #plugins} might also need reconfiguring
+ * with the new data.</p>
* @param {Ext.data.Store} store The new {@link Ext.data.Store} object
* @param {Ext.grid.ColumnModel} colModel The new {@link Ext.grid.ColumnModel} object
*/
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/GridView.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/GridView.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/grid/GridView.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -478,13 +478,16 @@
hd.style.width = ws[i];
}
- var ns = this.getRows();
+ var ns = this.getRows(), row, trow;
for(var i = 0, len = ns.length; i < len; i++){
- ns[i].style.width = tw;
- ns[i].firstChild.style.width = tw;
- var row = ns[i].firstChild.rows[0];
- for(var j = 0; j < clen; j++){
- row.childNodes[j].style.width = ws[j];
+ row = ns[i];
+ row.style.width = tw;
+ if(row.firstChild){
+ row.firstChild.style.width = tw;
+ trow = row.firstChild.rows[0];
+ for (var j = 0; j < clen; j++) {
+ trow.childNodes[j].style.width = ws[j];
+ }
}
}
@@ -500,11 +503,14 @@
var hd = this.getHeaderCell(col);
hd.style.width = w;
- var ns = this.getRows();
+ var ns = this.getRows(), row;
for(var i = 0, len = ns.length; i < len; i++){
- ns[i].style.width = tw;
- ns[i].firstChild.style.width = tw;
- ns[i].firstChild.rows[0].childNodes[col].style.width = w;
+ row = ns[i];
+ row.style.width = tw;
+ if(row.firstChild){
+ row.firstChild.style.width = tw;
+ row.firstChild.rows[0].childNodes[col].style.width = w;
+ }
}
this.onColumnWidthUpdated(col, w, tw);
@@ -521,11 +527,14 @@
var hd = this.getHeaderCell(col);
hd.style.display = display;
- var ns = this.getRows();
+ var ns = this.getRows(), row;
for(var i = 0, len = ns.length; i < len; i++){
- ns[i].style.width = tw;
- ns[i].firstChild.style.width = tw;
- ns[i].firstChild.rows[0].childNodes[col].style.display = display;
+ row = ns[i];
+ row.style.width = tw;
+ if(row.firstChild){
+ row.firstChild.style.width = tw;
+ row.firstChild.rows[0].childNodes[col].style.display = display;
+ }
}
this.onColumnHiddenUpdated(col, hidden, tw);
@@ -668,6 +677,11 @@
//g.on("headercontextmenu", this.handleHdCtx, this);
}
+ if(g.trackMouseOver){
+ this.mainBody.on("mouseover", this.onRowOver, this);
+ this.mainBody.on("mouseout", this.onRowOut, this);
+ }
+
if(g.enableDragDrop || g.enableDrag){
this.dragZone = new Ext.grid.GridDragZone(g, {
ddGroup : g.ddGroup || 'GridDD'
@@ -763,7 +777,7 @@
var cm = this.cm, ts = this.templates;
var ct = ts.hcell;
- var cb = [], sb = [], p = {};
+ var cb = [], p = {};
for(var i = 0, len = cm.getColumnCount(); i < len; i++){
p.id = cm.getColumnId(i);
@@ -977,7 +991,7 @@
// private
fitColumns : function(preventRefresh, onlyExpand, omitColumn){
- var cm = this.cm, leftOver, dist, i;
+ var cm = this.cm, i;
var tw = cm.getTotalWidth(false);
var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset;
@@ -1103,7 +1117,6 @@
}else{
index = ds.indexOf(record);
}
- var cls = [];
this.insertRows(ds, index, index, true);
this.getRow(index).rowIndex = index;
this.onRemove(ds, record, index+1, true);
@@ -1339,16 +1352,10 @@
// private
initUI : function(grid){
grid.on("headerclick", this.onHeaderClick, this);
-
- if(grid.trackMouseOver){
- grid.on("mouseover", this.onRowOver, this);
- grid.on("mouseout", this.onRowOut, this);
- }
},
// private
initEvents : function(){
-
},
// private
@@ -1371,7 +1378,7 @@
// private
onRowOut : function(e, t){
var row;
- if((row = this.findRowIndex(t)) !== false && row !== this.findRowIndex(e.getRelatedTarget())){
+ if((row = this.findRowIndex(t)) !== false && !e.within(this.getRow(row), true)){
this.removeRowClass(row, "x-grid3-row-over");
}
},
@@ -1585,7 +1592,7 @@
var t = this.view.findHeaderCell(e.getTarget());
if(t){
var xy = this.view.fly(t).getXY(), x = xy[0], y = xy[1];
- var exy = e.getXY(), ex = exy[0], ey = exy[1];
+ var exy = e.getXY(), ex = exy[0];
var w = t.offsetWidth, adjust = false;
if((ex - x) <= this.hw){
adjust = -1;
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/layout/BorderLayout.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/layout/BorderLayout.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/layout/BorderLayout.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -288,6 +288,7 @@
defaultNSCMargins : {left:5,top:5,right:5,bottom:5},
// private
defaultEWCMargins : {left:5,top:0,right:5,bottom:0},
+ floatingZIndex: 100,
/**
* True if this region is collapsed. Read-only.
@@ -437,7 +438,7 @@
}
c.hide();
c.dom.style.visibility = 'hidden';
- this.panel.el.setStyle('z-index', 100);
+ this.panel.el.setStyle('z-index', this.floatingZIndex);
},
// private
@@ -612,7 +613,7 @@
}
this.restoreLT = [this.el.dom.style.left, this.el.dom.style.top];
this.el.alignTo(this.collapsedEl, this.getCollapseAnchor());
- this.el.setStyle("z-index", 102);
+ this.el.setStyle("z-index", this.floatingZIndex+2);
if(this.animFloat !== false){
this.beforeSlide();
this.el.slideIn(this.getSlideAnchor(), {
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/layout/FormLayout.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/layout/FormLayout.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/layout/FormLayout.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -173,7 +173,7 @@
// private
adjustWidthAnchor : function(value, comp){
- return value - (comp.isFormField ? (comp.hideLabel ? 0 : this.labelAdjust) : 0);
+ return value - (comp.isFormField || comp.fieldLabel ? (comp.hideLabel ? 0 : this.labelAdjust) : 0);
},
// private
Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/menu/BaseItem.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/menu/BaseItem.js 2008-11-16 21:37:52 UTC (rev 30)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/menu/BaseItem.js 2008-11-21 14:33:19 UTC (rev 31)
@@ -67,9 +67,9 @@
*/
hideOnClick : true,
/**
- * @cfg {Number} hideDelay Length of time in milliseconds to wait before hiding after a click (defaults to 100)
+ * @cfg {Number} clickHideDelay Length of time in milliseconds to wait before hiding after a click (defaults to 100)
*/
- hideDelay : 100,
+ clickHideDelay : 1,
// private
ctype: "Ext.menu.BaseItem",
@@ -144,7 +144,7 @@
// private
handleClick : function(e){
if(this.hideOnClick){
- this.parentMenu.hide.defer(this.hideDelay, this.parentMenu, [true]);
+ this.parentMenu.hide.defer(this.clickHideDelay, this.parentMenu, [true]);
}
},