setHeight( string )

2008.10.21. 09:02 stack

A rendszerben, mellyel jelenleg dolgozok minden adat XML-ből származik, így alapértelmezetten minden string. Először nem gondoltam, hogy ezzel foglalkoznom kell, mert úgyis átalakítja majd az ExtJS, ha át kell alakítani... majdnem. :)

var win = new Ext.Window({
    width: 300, height: 300, closable:false
);
win.show();
win.setSize(200, 200).setSize('100', '100');

Tudom, nem logikus maga a mintakód, de az eredmény méginkább nem az. :)
magasság 200, szélesség 100 pixel.

(ugyanezt az eredményt kapnánk, ha nem '100', hanem '100px'-t írnánk a kódba, ami már nem annyira irreális)

Szólj hozzá!

Címkék: string napi szívás height

Window.toFront

2008.10.20. 12:18 stack

Az ExtJS használata közben a Firefox néha művel furcsaságokat, az egyik ilyen, hogy ha egy inaktív ablak egyik input mezőjére kattintunk, akkor az input mező nem kapja meg a fókuszt. Az alábbi kis „patch” ezen segít:

Ext.override(Ext.Window, {
    toFront: function(e) {
        if(this.manager.bringToFront(this)) {
            if (!e || !e.getTarget().focus) {
                this.focus();
            }
        }
        return this;
    }
});

Számomra szokatlan, hogy az ExtJS fóruma mennyire aktív, illetve, hogy a support team milyen lelkesedéssel válaszolnak a legkülönbözőbb problémákra. A fenti kód is a fórumból származik.

Szólj hozzá!

Címkék: override focus window

Ext.ux.layout.CenterLayout

2008.10.20. 09:04 stack

Tudom, a CENTER tag és társait sokan már rég eltemették, ám néhány esetben kifejezetten hasznos. (pl. ha egy konténerben az elemeket középre akarjuk helyezni, amire eredetileg is kitalálták:)

Ext.ns('Ext.ux.layout');
Ext.ux.layout.CenterLayout = Ext.extend(Ext.layout.ContainerLayout,{
    onLayout: function(ct, target) {
        if(!this.innerCt) {
            this.innerCt = target.createChild({tag:'center'});
        }
        this.renderAll(ct, this.innerCt);
    }
});
Ext.Container.LAYOUTS['ux.center'] = Ext.ux.layout.CenterLayout;

Mindennek előnye más center layoutokkal szemben, hogy az elemhez nem teszünk hozzá extra osztályt, mely megoldások néha furcsa következményekkel járhatnak.

Szólj hozzá!

Címkék: layout class center

Tömbé alakítás

2008.10.18. 10:22 stack

Az ExtJS forráskódját vizsgálva egy számomra új és érdekes ötletre bukkantam.

Ha pl. egy függvény bejövő paraméterének megengedem, hogy akár egy elemet, akár listában több elemet tartalmazzon, akkor ezt az értéket a következő kóddal alakíthatom tömbbé:

if (!Ext.isArray(A)) {
    A = [A];
}

Ezzel szemben ugyanezt a hatást érhetjük el azzal is, ha a bejövő értéket hozzáfűzzük egy üres tömbhöz:

A = [].concat(A);

Szubjektív vélemény, de szerintem szebb az utóbbi. :)

Szólj hozzá!

Címkék: array

ComboBox.doQuery

2008.10.17. 09:20 stack

A ComboBox kétféleképpen szűrheti az adatait, helyben azaz kliens oldalon, és távol azaz szerver oldalon. (mode: local, remote) Első előnye, hogy gépelés közben nem kell a szerverre várni az ajánlások miatt, míg másodiknak, hogy először akkor töltődik be az adat, amikor arra valóban szükség van. (oké, ez egy kicsit egyszerűsített összehasonlítás lett...)

Egy apró kiegészítéssel megoldható, hogy a kliens oldali rendezést használva is csak akkor töltsük be az adatokat, amikor arra valóban szükség van. Ezt a szűrést a doQuery függvény végzi, amit az alábbi módon írhatunk felül:

doQuery: function() {
    if ( this.store.lastOptions ) {
        Ext.form.ComboBox.prototype.doQuery.apply(this, arguments);
    } else {
        this.store.load({
            callback: this.doQuery.createDelegate(this, arguments)
        });
    }
}

Ha volt már lekérés, akkor az alapértelmezett doQuery-t kell meghívni, ha nem volt még, akkor a store töltse be az adatokat, majd utána hívja meg ismét a doQuery-t.

5 komment

Címkék: combobox

Viewport.tbar

2008.10.13. 21:45 stack

Sikerült ma néhány órányi felesleges munkát adni magamnak.

Eddig nem is néztem, mint kiderült a Viewport-nak nem lehet TopToolbar-t adni... sebaj, a megoldás egyszerű:

new Ext.Viewport({
    layout: 'fit',
    items: {
        tbar: [{text:'Gomb'},{text:'Másik gomb'},{text:'Harmadik'}],
        layout: 'border',
        items: [
            {region:'west', width:100, split:true},
            {region:'east', width:100, split:true},
            {region:'north', height:100, split:true},
            {region:'south', height:100, split:true},
            {region:'center'}
        ]
    }
});

És máris olyan, mintha a viewportnak lenne felső toolbar-ja. Csakhogy...

Szólj hozzá!

Címkék: toolbar napi szívás viewport

Ext.ux.iconCls

2008.10.12. 11:20 stack

Sosem értettem, hogy miért kell a icon és az iconCls-t így túlbonyolítani, bőven elég lenne csak az egyik (az icon), ám mégis néhol mindkettő van, néhol meg csak az iconCls.

Az ötlet, hogy készítsek egy singleton osztályt ennek a dilemmának a feloldására nem saját, ám a több megoldás közül egyik sem tetszett, így hát íme a száz plusz egyedik leegyszerűsített Ext.ux.iconCls:

Szólj hozzá!

Címkék: css icon class

Hello...

2008.10.12. 09:56 stack

Egyik nap azon gondolkodtam, hogy a fejlesztés közben szerzett tapasztalatokat valahol le kellene jegyzetelem, majd e gondolatot kiegészítve arra jutottam, hogy akár másokkal meg is lehetne osztani... annak reményében, hogy az általam felvetett témákat újabb gondolatokkal egészülhetnének ki...

Nagy koncepció elsőre nincs... elkezdem, aztán majd meglátjuk...

3 komment

Címkék: off

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?

süti beállítások módosítása