Il controllo notification in ambiente pocket pc

In questo articolo vedremo come utilizzare il controllo notification per effettuare una notifica a video.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Introduzione:
In questo articolo vedremo come utilizzare il nuovo controllo Notification di Visual Studio Net 2005, in ambiente pocket pc. Tale articolo illustrerà come visualizzare una notifica con la possibilità di scegliere una città in una determinata lista, creare un collegamento ipertestuale per l’invio di un email e ricavare il valore di una checkbox, il tutto come mostrato in figura 1.
Il controllo Notification fa parte dei nuovi controlli per l’ambiente compact framework (ambiente mobile) ma con Visual Studio 2005 è la versione del compact Framework 2.0, si hanno notevoli novità, non solo in fatto di controlli, ma anche di classi ed altro. Tale controllo ha il compito di visualizzare nella parte superiore del palmare, nella barra di avvio, un testo descrittivo (tipo il tool tip text nella traybar di Windows xp) che verrà visualizzato o al click sull’icona rappresentativa o in particolari situazioni. Nel nostro caso verrà avviata tramite l’evento click di un pulsante.

 

 

 

Creazione dell’interfaccia
Avviamo Visual Studio 2005, e nella schermata principale scegliamo nuovo progetto (Create … project) nella finestra che viene aperta scegliamo nella parte sinistra, in tipo di progetto, Visual Basic, tra le varie voci scegliamo la voce smart device e selezioniamo in tale elenco la voce Pocket Pc 2003, a questo punto nella parte di destra, in modelli (templates) scegliamo la voce Device application, facciamo click sul pulsante ok.
Creato tale progetto, verrà visualizzato un emulatore, dove si può costruire l’interfaccia del programma che vogliamo sviluppare. Scegliamo nella barra degli strumenti, i seguenti controlli, un pulsante, che avrà il compito di visualizzare la notifica, impostiamo la proprietà name con il valore btnNotifica, mentre la proprietà Text con il vaolore “Notifica”. Inseriamo un controllo status bar per visualizzare del testo descrittivo, impostiamo la proprietà name con il valore stbstato, ed infine inseriamo il controllo Notification.
Dopo aver inserito tale controllo, scegliamo dalla finestra proprietà di tale controllo la voce icon, essa rappresenta la possibilità di visualizzare un icona nella barra di avvio, scegliamo un’icona.
A questo punto l’operazione di creazione interfaccia è terminata, passiamo in visualizzazione codice.

 

 

Stesura del codice
Terminata la parte di creazione dell’interfaccia, non resta che scrivere il codice per vedere l’utilizzo di tale controllo.
Il listato 1 mostra il codice  completo in VB.Net  per visualizzare una notifica ed eseguire determinate operazioni su tale messaggio, di seguito verrà analizzato tale codice.
Nel costruttore della form (sub new) viene richiamata la funzione “configurazione” che permette di impostare alcune proprietà del controllo notification. Tale funzione imposta le seguenti proprietà:
La proprietà caption ha il compito di impostare il titolo della notifica.
La proprietà Critical, imposta l’aspetto della notifica, se tale proprietà è impostata su true il bordo della notifica sarà di colore rosso, altrimenti resta quello di default.
La proprietà Text imposta il testo descrittivo della notifica, nel nostro caso è stato utilizzato del testo formato html, in questo modo avremo la possibilità di visualizzare il messaggio di notifica con l’aspetto simile ad una pagina web, con tanto di collegamento ipertestuale, di checkbox, e di un controllo per la selezione di una voce da una lista. Utilizzando un oggetto di tipo StringBuilder, possiamo creare del testo formato html, che verrà utilizzato come testo descrittivo nella notifica.
Alla proprietà Text non è obbligatorio passare del testo formato html, si può impostare tale proprietà anche con del testo normale. Si è utilizzato il testo formato html, per visualizzare oggetti e ricavare il valore di tali oggetti quando si fa click sul pulsante ok o sul collegamento ipertestuale.
Di seguito è riportato il codice delle suddette dichiarazioni:

 

Private Sub Configurazione()
        Try
           
            'Imposto il testo del titolo
            Notification1.Caption = "Testo del titolo della notifica"
 
            'In caso che è true visualizza un contorno rosso
            Notification1.Critical = False
 
            'creo un oggetto di tipo testo, che poi sarà visualizzato come pagina web
            Dim HTMLString As New StringBuilder()
            'Valorizzo tale oggetto con testo html
            HTMLString.Append("<html><body>")
            HTMLString.Append("<font color=""#0000FF""><b>Indirizzo E-mail:</b></font>")
            HTMLString.Append("&nbsp;&nbsp;&nbsp;&nbsp;<a href=""mailto:emanuelemattei@aruba.it"">E-mail</a>")
            HTMLString.Append("<br><form method=""GET"" action=notifica>")
            HTMLString.Append("<SELECT NAME=""lstbx"">")
            HTMLString.Append("<OPTION VALUE=""0"">Città</OPTION><OPTION VALUE=""1"">Roma</OPTION>")
            HTMLString.Append("<OPTION VALUE=""2"">Firenze</OPTION><OPTION VALUE=""3"">Milano</OPTION>")
            HTMLString.Append("<OPTION VALUE=""4"">Palermo</OPTION></SELECT>")
            HTMLString.Append("<input type=checkbox name=chkbx>Notifica completata")
            HTMLString.Append("<br><input type='submit' value='Ok'>")
            HTMLString.Append("<input type=button name='cmd:2' value='Annulla'>")
            HTMLString.Append("</body></html>")
 
            'Imposto la proprietà text che conterrà il testo da visualizzare
            Notification1.Text = HTMLString.ToString()
 
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

 

Come si vede dal codice, nell’evento click del pulsante, impostiamo la durata in cui la notifica dovrà rimanere visualizzata, espressa in secondi, tramite la proprietà
InitialDurationmentre la proprietà visible avrà il compito di visualizzare la notifica.

 

Come si vede di seguito il codice deve essere simile a quello riportato qui di seguito:
'imposto la durata di quanto dovrà rimanere visualizzata
        Notification1.InitialDuration = 20
        'visualizzo la notifica
        Notification1.Visible = True

 

L’evento BallonChanged si scatena quando la notifica viene visualizza o nascosta, nel nostro esempio viene modificato il testo del pulsante. Mentre l’evento ResponseSubmitted viene avviato quando c’è una risposta da parte della notifica, ossia quando c’è una richiesta da parte del form html creato in precedenza. Esso si verifica o al click del pulsante ok, o al click sul collegamento ipertestuale. Tramite l’oggetto reseventotteniamo le informazioni relative all’azione eseguita.
Come si vede dal listato di esempio, tramite la proprietà response possiamo ottenere il testo della notifica. Utilizzando il metodo SubString di tale proprietà, verifichiamo che i primi otto caratteri del messaggio corrispondo al testo “notifica”, ossia il nome dell’azione del form html del messaggio, qualora è così ricaviamo il testo della combo box, e verifichiamo che la checkbox sia valorizzata, altrimenti verifichiamo se il testo corrisponde al collegamento ipertestuale. Qualora risulta come in quest’ultimo caso, tramite il metodo start della classe process, apriamo un messaggio di posta elettronica tramite il programma per la gestione delle email installato sul palmare.
Al termine delle varie operazioni, valorizziamo la proprietà Text della barra di stato con un testo descrittivo.

Di seguito è riportato il codice delle suddette dichiarazioni:

 

        ' Variabile contenente l'eventuale testo
 
        Dim StrTesto As String = ""
        'Tramite l'oggetto resevent ottengo le informazioni in risposta all'azione eseguita
        'sulla notifica.
        If resevent.Response.Substring(0, 8) = "notifica" Then
            Dim IntPosizione As Integer = Convert.ToInt32(resevent.Response.Substring(15, 1))
            Select Case IntPosizione
                Case 0
                    StrTesto = "submit"
                Case 1
                    StrTesto = "Roma"
                Case 2
                    StrTesto = "Firenze"
                Case 3
                    StrTesto = "Milano"
                Case 4
                    StrTesto = "Palermo"
            End Select
            'Verifico che la checkbox sia valorizzata
            If resevent.Response.EndsWith("on") Then
                StrTesto = StrTesto & " checkbox = Si"
            End If
 
            ' Verifico chce il click sia fatto sul collegamento ipertestuale
        ElseIf resevent.Response = "mailto:emanuelemattei@aruba.it" Then
            'se così fosse avvio il programma di posta elettronica predefinito
 
            System.Diagnostics.Process.Start("mailto:emanuelemattei@aruba.it", "")
           
        End If
 
        ' visualizzo il messaggio nella barra di stato
        StbStato.Text = StrTesto & " Valore: " & resevent.Response.ToString()

Conclusioni

In questo articolo abbiamo visto come utilizzare il nuovo controllo Notification, un controllo molto utile e carino, che renderà le applicazioni in ambiente pocket pc più accattivanti. Ma il nuovo compact framework e Visual studio net 2005, hanno nuove funzionalità che semplificano di molto lo sviluppo di applicazioni per ambiente mobile (palmari e smartphone).

Tramite la parola download è possibile scaricare l'esempio utilizzato nell'articolo.

Download