4 pagine in totale: <<Indietro 1 2 [3] 4 Avanti >>
Il tema dei gadget
Perchè i gadget abbiano un'apparenza simile, ci sono delle regole da tenere a mente. La prima è che spesso è necessario fargli avere delle trasparenze e questo può essere possibile attraverso l'uso di un apposito controllo, che si chiama g:background, le cui specifiche sono a questo indirizzo. L'accesso a questo oggetto è possible attraverso il namespace g, da codice, in questo modo:
document.body.g.background.src = "background.png";C'è anche il supporto per g:image e g:text, perchè questi 3 oggetti hanno la caratteristica di poter essere manipolati un po' come se non fossero elementi HTML, contando su luminosità e rotazione.
In genere, inoltre, spesso viene aggiunta un'header in modo che il browser sappia che quello che sta visualizzando è un gadget:
...<head> <meta http-equiv="MSThemeCompatible" CONTENT="yes">
...
</head>...Per quanto riguarda le trasparenze nello sfondo, sono supportate solo ai margini, attraverso una PNG dove la trasparenza sia impostata al 100%. Non sono supportate trasparenze in mezzo all'immagine di sfondo, nè con sfumature, perchè ci pensa la sidebar a farlo in automatico intorno ai bordi dell'immagine.

Il "namespace" System.Gadget
Per rendere possibile l'accesso alle informazioni di sistema, è stato aggiunto il supporto per un namespace Javascript particolare, che si chiama System.Gadget ed il cui modello ad oggetti è disponibile su MSDN.
Fornisce l'accesso alle principali funzionalità di Windows, come le variabili di ambiente, piuttosto che i contatti, il calendario, l'ora corrente, lo stato delle rete, etc.
La maggior parte di queste funzionalità sono implementate nei gadget disponibili insieme a Windows Vista ed installati di default.
Particolarmente interessante, perchè i gadget in fin dei conti sono mini applicazioni web, è l'oggetto System.Gadget.Settings, che mette a disposizione i metodi read e write, rispettivamente per leggere e scrivere informazioni associate al gadget stesso.
La modifica delle impostazione è fatta attraverso una pagina ad hoc, che è specificata nel file principale attraverso la seguente proprietà:
System.Gadget.settingsUI = "settings.html";Tendenzialmente questa impostazione viene fatta nell'onload della prima pagina, così che poi la sidebar mostri un menu "Settings" associato al menu contestuale visibile con il pulsante destro sul gadget. Successivamente è necessario salvare esplicitamente i valori, inseriti dentro normali textbox o controlli simili, intercettando l'evento onSettingsClosing, così:
System.Gadget.onSettingsClosing = SettingsClosing;
function SettingsClosing(event)
{
// intercetto solo il click su "OK"
if (event.closeAction == event.Action.commit)
{
System.Gadget.Settings.write("username", username.Text);
System.Gadget.Settings.write("password", password.Text);
}
event.cancel = false;
}
Contestualmente, nella pagina principale bisogna associare un event handler per l'evento SettingsClosed, così:
System.Gadget.onSettingsClosed = SettingsClosed;
function SettingsClosed()
{
username = System.Gadget.Settings.read("username");
...
}Il codice associato si occupa ovviamente di aggiornare la visualizzazione utilizzando le nuove impostazioni. E' utile sottolineare che lo storage è relativo a quella particolare istanza del gadget, per cui se si vuole far sopravvivere o condividere con altri gadget dello stesso tipo, è necessario utilizzare un meno esotico cookie come contenitore delle informazioni.
Generalmente, infatti, la lettura delle informazioni è demandata ad XmlHttp, da remoto, dato che non c'è possibilità di utilizzare pagine remote senza non qualche difficoltà, dovuta ai meccanismi di sicurezza della sandbox che gestisce il gadget.
Per il resto, il modello ad oggetti è abbastanza chiaro e consente di implementare qualsiasi funzionalità sia necessaria.
4 pagine in totale: <<Indietro 1 2 [3] 4 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Difficoltà
Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
