
fonte: dal web
Rieccoci a parlare di Sencha ExtJs, uno tra i più interessanti e potenti framework Javascript oggi in circolazione. Quello che vediamo in questo breve tutorial è un comodo override da applicare ad tutti i widget “Window” per centrare nello schermo la renderizzazione delle finestre.
Questo approccio è molto comodo quando stiamo implementando ad esempio l’interfaccia di un applicativo che richiedere l’utilizzo di molte finestre, come ad esempio un gestionale o un CMS. La potenza di Sencha ExtJs rispetto ai molti framework Javascript considerati suoi “avversari” (Dojo in primis) è data proprio dal fatto che questo prodotto mette a disposizione degli sviluppatori tutta una seria di widget semplici, completi e decisamente funzionali, tutti praticamente pronti all’uso.
I widget “Window” sono chiaramente tra i più utilizzati, perchè permettono in realtivamente poco tempo-lavoro di avere complesse interfacce complete e funzionali. In questi casi è molto comodo centralizzare il comportamente delle finestre, visto che nella maggior parte dei casi queste verranno visualizzate centrate rispetto allo schermo e quindi all’area di lavoro disponibile.
Per impletare questo tipo di lavoro possiamo utilizzare questo override:
Ext.override(Ext.Window, {
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'),
pos = this.el.translatePoints(xy[0], xy[1]);
if(this.position === 'cascade'){
this.x = Ext.winPosx = (Ext.winPosx)? Ext.winPosx+20 : pos.left;
this.y = Ext.winPosy = (Ext.winPosy)? Ext.winPosy+20 : pos.top;
}else{
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);
//gestione dell'espansione
if(this.expandOnShow){
this.expand(false);
}
//gestione finestra modale
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();
}
}
});
Il codice di cui sopra è più semplice di quel che potrebbe sembrare: viene applicato un override all’oggetto “Ext.Window” (riga 1), per cui ogni volta che utilizzeremo questo widget, prima di essere visualizzato (stiamo utilizzando il listener “beforeShow” – riga 2) verranno sovrascritti i valori delle sue posizioni (X e Y – righe 9,10 o 12, 13 in base ai casi).
Viene anche gestito il caso in cui la finestra sia dichiarata “modale” (le finestre modali sono quelle che una volta aperte e attivate permettono di lavorare esclusicamente nel loro contesto, disabilitando l’accesso al background – righe 25-27) e la funzionalità di espansione nativa in tutti i widget di tipo “Window” (riga 20).
![Google Drive: creare mettere online vostro primo sito [Guida]](https://m21.paperblog.com/i/288/2882379/google-drive-creare-e-mettere-online-il-vostr-L-zb8ZMk-175x130.jpeg)




