2014-09-04 22 views
7

Come posso modificare la favicon delle mie pagine in Vaadin? Mi piacerebbe cambiare la favicon delle mie pagine ma non ho idea di dove sia il posto in cui cambiarlo? Qualcuno ha esperienza su di esso?Vaadin: Come cambiare la favicon?

risposta

9

In primo luogo, creare una cartella del tema:/WebContent/Vaadin/themes/MyNewTheme

Poi, mettere la vostra favicon.ico personalizzato in questa directory. È inoltre necessario impostare la proprietà tema nell'applicazione:

public class MyNewApplication extends Application { 

    @Override 
    public void init() { 
     ... 
     ... 
     setTheme("mynewtheme"); 
    } 
} 
+1

Vaadin 7: @Theme ("MyNewTheme") public class MyUI estende UI {... – Krayo

+0

Se il mio nome icona è ** ** custom.ico invece di ** favicon .ico **, funzionerà? – Cataclysm

+2

Molto strano ... Ho l'annotazione @Theme ("mytheme") sulla mia classe UI ma devo chiamare setTheme ("mytheme") UNA VOLTA per cambiare favicon ... – shinchillahh

4

Nel caso del nome un'icona personalizzata (Vaadin 7):

public class MyServlet extends VaadinServlet implements SessionInitListener { 

    @Override 
    protected void servletInitialized() throws ServletException { 
     super.servletInitialized(); 
     getService().addSessionInitListener(this); 
    } 

    @Override 
    public void sessionInit(SessionInitEvent event) throws ServiceException { 
     event.getSession().addBootstrapListener(new BootstrapListener() { 

      @Override 
      public void modifyBootstrapPage(BootstrapPageResponse response) { 
       response.getDocument().head() 
        .getElementsByAttributeValue("rel", "shortcut icon") 
        .attr("href", "./VAADIN/themes/mynewtheme/custom.ico"); 
       response.getDocument().head() 
        .getElementsByAttributeValue("rel", "icon") 
        .attr("href", "./VAADIN/themes/mynewtheme/custom.ico"); 
      } 

      @Override 
      public void modifyBootstrapFragment(BootstrapFragmentResponse response) { 
      } 

     }); 
    } 

} 

EDIT

E 'meglio usare il BootstrapListener come classe nidificata statica: link

+0

Apprezzo questa risposta, MA: ho applicato questo al mio progetto con '.../favicon.png"). attr ("tipo", "immagine/png"); 'e nulla viene visualizzato come favicon nella scheda del mio browser. Se disattivo/commento la nuova applicazione non è nemmeno La favicon predefinita di Vaadin viene visualizzata più a lungo. (V7.5.0.rc1) –

+0

Beh, è ​​divertente, ho appena scoperto che la favicon corretta viene visualizzata nella cronologia di FF. È semplicemente/non ancora visualizzata nella scheda della pagina. –

+1

@GeroldBroser Versioni recenti i browser Web hanno cambiato il loro uso delle favicon Alcuni browser visualizzano i favicon in una scheda, altri no, alcuni vengono visualizzati nella barra degli indirizzi URL, altri no, alcuni vengono visualizzati in un menu dei segnalibri, altri no. –

6

Ecco una versione più dettagliata di similar Answer pubblicato da Greg Ballot. La mia risposta qui riguarda Vaadin 7, attuale al punto 7.5.3.

tema personalizzato

In Vaadin 7.5, è possibile eliminare la vostra grafica favicon file di immagine in your own custom theme. Se si utilizza il plug-in Vaadin per vari , Eclipse o Maven archetypes, un tema personalizzato denominato mytheme dovrebbe già essere stato creato per te. Trascina il file immagine nella cartella .

La parte principale della tua app Vaadin 7, la sottoclasse di UI, deve specificare che utilizza il tema personalizzato. Di nuovo, se si usano i plugin IDE e/o l'archetipo Maven, questo dovrebbe essere già stato configurato per te. Il modo più semplice è un'annotazione Java nella sottoclasse UI.

@Theme ("mytheme") // Tell Vaadin to apply your custom theme, usually a subclass of the Valo or Reindeer theme. 
@Title ("PowerWrangler") // Statically specify the title to appear in web browser window/tab. 
@SuppressWarnings ("serial") // If not serializing such as "sticky sessions" and such, disable compiler warnings about serialization. 
@Push (PushMode.AUTOMATIC) // If using Push technology. 
public class MyVaadinUI extends UI 
{ 
… 

Favicon Uso/comportamento non standard

Ricordati che il comportamento favicon non è standardizzato. Le favicon si sono sviluppate a casaccio, soprattutto per il senso del divertimento. Il comportamento esatto dipende dal browser particolare e dal server particolare. A parte il particolare percorso della cartella, niente di tutto questo è speciale per Vaadin.

formati di file di immagini

Originariamente il ICO file format è stato utilizzato esclusivamente. Da allora la maggior parte dei browser si è evoluta per accettare uno qualsiasi dei diversi formati, tra cui JPEG, TIFF e PNG.

Ingrandimento/Risoluzione

Originariamente favicon erano destinati ad essere molto piccole icone bitmap. Alcuni browser hanno fatto vari usi della favicon in situazioni in cui potresti voler fornire un'immagine ad alta risoluzione. Ricorda però che i file più piccoli vengono caricati più velocemente senza che gli utenti lo aspettino.

Favicon Nome File

Alcuni browser o server possono gestire altri nomi di file o le estensioni dei nomi, ma ho trovato più semplice per chiamare il mio file esattamente favicon.ico - anche se si utilizza un formato diverso!Di solito uso un file PNG ma lo chiamo con l'estensione .ico. Anche se non posso garantire che questa pratica funzioni su ogni server e browser, non ho riscontrato alcun problema.

esistenti Favicon File

versioni recenti di Vaadin hanno incluso un'icona Vaadin legati in un file favicon.ico in un progetto configurato. Quindi devi sostituire quel file con il tuo. Nel Vaadin 7.5.3 il file contiene quattro dimensioni, la più grande ricerca come questo:

Vaadin logo favicon provided by default in a configured project

più vecchio versioni non aggiungere un file, in modo da cadere nel proprio.

schermate IDE

Qui ci sono un paio di schermate. Uno è la vista del progetto (logico) in NetBeans 8, mentre l'altro è una vista dei file (fisica).

Project view of a favicon’s location, using NetBeans 8

File system view of a favicon’s location, using NetBeans 8