Introduzione a XUL

Facciamo la conoscenza di XUL dicendo subito che la corretta pronuncia e' zul.

XUL (XML User Interface Language) e' un linguaggio nato per sviluppare le interfacce grafiche multipiattaforma per le applicazioni Mozilla.

Tra le caratteristiche principali troviamo:

  • un insieme base di componenti grafici (widget) descritti tramite XML
  • accesso ai widget tramite DOM document
  • uso dei CSS per gli stili grafici
  • gestione degli eventi generati dai widget attraverso il linguaggio Javascript
  • il codice puo' essere richiamato localmente o dinamicamente offrendo la possibilita' di creare interfacce grafiche identiche a quelle native delle piattaforme

Risulta quindi evidente che XUL non "reinventa la ruota" ma utilizza tecnologie standard e ben affermate. Per coloro che gia' usano HTML, CSS e javascript la curva di apprendimento risulta molto bassa.

XUL insieme a DOM

Chi conosce DOM ritrovera' in XUL parecchie similitudini ed in particolare

  • XUL e' conforme a W3C DOM level 2
  • i widget sono elementi DOM
  • DOM e' usato per attraversare, inserire rimuovere e modificare nodi XUL
  • accesso ai nodi tramite Javascript
  • ogni elemento XUL ha un insieme di attributi e proprieta' cosi' come e' con gli elementi HTML

XUL e gestione degli eventi

XUL e' un linguaggio basato su eventi esattamente come lo e' HTML

  • Segue il modello ad Eventi di W3C DOM
  • Meccanismo Two phase event, capture and bubble
  • Possibilita' di "attaccare" dinamicamente eventi ai widget tramite dei listener

Overlay

Gli overlay sono una eccezionale tecnica per arricchire i componenti grafici esistenti senza doverli riscrivere da zero. Si supponga di avere una finestra di ricerca e di voler aggiungere ad essa un nuovo pulsante, normalmente bisognerebbe copiare il codice originale ed adattarlo alle proprie esigenze con gli overlay non e' necessario.

  • Con un overlay e' possibile aggiungere, rimuovere o modificare una UI esistente
  • E' possibile componentizzare e riutilizzare le interfacce UI XUL
  • Tutto si basa sull'attributo id del componente UI come da specifiche W3C
  • Non e' altro che XUL che riutilizza XUL!
Syndicate content