This shows you the differences between two versions of the page.
|
sviluppo:javascript:ext.xrecord [2010/03/10 11:35] abottarini created |
sviluppo:javascript:ext.xrecord [2010/03/10 16:33] (current) abottarini |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Ext.ux.data.XRecord ====== | ====== Ext.ux.data.XRecord ====== | ||
| + | |||
| + | ===== ExtJS, Record e associazioni ===== | ||
| Una delle principali limitazioni che ho trovato nella gestione dei Record in ExtJS è la mancanza di una qualsivoglia struttura per gestire l'associazione tra differenti Record. Qualsiasi applicazione, pur piccola, presenta un modello di dati con entità tra di loro relazionate. Si hanno infatti oggetti che incapsulano tra i loro attributi altri oggetti sia in formato scalare (oggetto singolo) che in formato vettoriale (lista di oggetti). | Una delle principali limitazioni che ho trovato nella gestione dei Record in ExtJS è la mancanza di una qualsivoglia struttura per gestire l'associazione tra differenti Record. Qualsiasi applicazione, pur piccola, presenta un modello di dati con entità tra di loro relazionate. Si hanno infatti oggetti che incapsulano tra i loro attributi altri oggetti sia in formato scalare (oggetto singolo) che in formato vettoriale (lista di oggetti). | ||
| Line 80: | Line 82: | ||
| car.get("model") //ritornerà "SLK" | car.get("model") //ritornerà "SLK" | ||
| </code> | </code> | ||
| + | |||
| + | Il plugin semplicemente aggiunge due nuove tipologie di campo disponibili in fase di definizione di un Record: __record__ (per definire un attributo composto da un sotto-record) e __recordarray__ (per un attributo composto da un vettore di sotto-record). Entrambe le definizioni necessitano di un campo aggiuntivo obbligatorio (record) che contiene un riferimento alla tipologia di record che verrà incapsulato (sia un riferimento diretto sia una stringa). | ||
| + | Definendo i campi in questo modo sarà possibile lavorare direttamente sui Record utilizzando le stesse API esposte da ExtJS. | ||
| Questo nuovo approccio altera a fondo la gestione globale dei Record all'interno di tutto il framework quindi il plugin non solo definisce la classe Ext.ux.data.XRecord, ma presenta anche degli override ad alcune altre classi per permettere l'adattamento a questo nuovo modello di gestione dei dati. | Questo nuovo approccio altera a fondo la gestione globale dei Record all'interno di tutto il framework quindi il plugin non solo definisce la classe Ext.ux.data.XRecord, ma presenta anche degli override ad alcune altre classi per permettere l'adattamento a questo nuovo modello di gestione dei dati. | ||
| Line 85: | Line 90: | ||
| * Ext.data.Field: nuovi type: record e recordarray e nuove funzioni di conversione | * Ext.data.Field: nuovi type: record e recordarray e nuove funzioni di conversione | ||
| * Ext.data.DataWriter: modifica alla funzione di conversione di un record in un hash (aggiunta la ricorsione per trasformare in hash anche i sotto-record) | * Ext.data.DataWriter: modifica alla funzione di conversione di un record in un hash (aggiunta la ricorsione per trasformare in hash anche i sotto-record) | ||
| + | |||
| + | ===== Download ===== | ||
| + | * {{:sviluppo:javascript:xrecord-0.1.zip|Ext.ux.data.XRecord-0.1}} (//2010/03/10//) | ||