Programmazione.it v6.2
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Chat Forum
Realizzare applicazioni per iPhone con GWT (2/3)
Scritto da Francesco Carotenuto il 30-11-2009 ore 12:08
Nel precedente articolo ci siamo occupati di come gestire l'orientamento dello schermo; qui ci occuperemo di gestire le animazioni su iPhone, che sono utilizzate anche per le transazioni tra una pagina e un'altra. Inoltre introdurremo una soluzione di implementazione di una semplice lista non numerata, che completeremo nel prossimo articolo.

Per risolvere il problema delle animazioni, ci serviamo delle specifiche di CSS 3, che sono già ampiamente implementate all'interno di WebKit, motore di rendering su cui si poggia Safari.

Per poterle utilizzare nelle nostre applicazioni GWT dobbiamo completare i seguenti task: impostare il contenuto di un elemento; impostare sull'elemento una classe CSS che disabilita le animazioni; impostare l'elemento stesso con un'altra classe CSS, che lo porrà sulla posizione iniziale, quella che avrà nell'ambito dell'animazione da eseguire. Quindi bisognerà istanziare un DeferredCommand, che provvederà a rimuovere le classi CSS impostate precedentemente e abilitare la classe CSS, che svolge l'animazione.

Infine si deve impostare sull'elemento stesso un'ulteriore classe CSS, che metterà l'elemento nella posizione in cui esso stesso si manterrà dopo la fine dell'animazione. Una volta che l'animazione è finita, utilizzando un transitionend event, si disabilitano le classi, che rendono possibile l'animazione sull'elemento, sostituendole con quelle indicate nei punti precedenti, per far tornare l'elemento al punto di partenza.

Con GWT è possibile creare qualsiasi tipo di elemento con il tag <body>. Però di default possiamo utilizzare solo un set di widget, che non ci implementano tutti i tag a noi necessari, come ad esempio <li> e <ul>; per cui dobbiamo scrivere delle classi ad hoc, che implementino in qualche modo tali tag.

Per realizzare, ad esempio una lista non numerata possiamo costruirci due classi: una che implementa un singolo elemento di tale lista, e un'altra che contiene tutte le istanze della prima. Di seguito riportiamo il codice della classe ,che implementa il container di elementi di una lista.
  1. ...
  2. public class GenericContainerTag extends ComplexPanel {
  3. 	public GenericContainerTag(String tagName) {
  4. 		setElement(DOM.createElement(tagName));
  5. 	}
  6.  
  7. 	@Override
  8. 	public void add(Widget w) {
  9. 		add(w, getElement());
  10. 	}
  11.  
  12. 	 public void insert(Widget w, int beforeIndex) {
  13. 		insert(w, getElement(), beforeIndex, true);
  14. 	}
  15. }
Per poter utilizzare questo oggetto nel nostro codice e creare un tag <ul> non dovremo fare altro che eseguire la chiamata:
  1. GenericContainerTag ul = new GenericContainerTag("ul");
Precedente: JavaFX Script, RSS e salvataggio dei dati
Successiva: Quando non è possibile raggiungere un sito web
Copyright Programmazione.it™ 1999-2009. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 1.229 secondi. Sito ottimizzato per Mozilla Firefox. Powered by Kyron.