DigitalOcean, un eccezionale servizio di Cloud Hosting, da provare! Inoltre, suggerendolo puoi guadagnare :)

martedì 31 gennaio 2012

Colore sfondo ContentPanel in ExtGWT

La documentazione presente per ExtGWT scarseggia, per capire come cambiare il colore dello sfondo di un ContentPanel c'è voluto mezz'ora, anche a causa di post che si contraddicevano...

Ad ogni modo, ecco come impostare il colore dello sfondo del ContentPanel:
panel.setBodyStyle("backgroundColor: #colore_qui;");

sabato 28 gennaio 2012

Compressione contenuti Vaadin

Di solito è una buona cosa comprimere con gzip tutto il traffico http in chiaro di Vaadin, per la velocità e in modo da minimizzare la quantità di dati trasferiti. Per farlo bisogna configurare il server, ed è un concetto applicabile in generale e non solo per Vaadin.

Quando la compressione gzip è abilitata, il server comprime i dati inviati al browser, spesso con conseguente riduzione notevole della dimensione dei dati trasferiti e quindi del tempo di download.

Non vogliamo comprimere roba che è già molto compressa, come ad esempio i file JPEG, perciò dobbiamo fare in modo che il server conosca quali mime-type vogliamo comprimere. Di solito il server è preconfigurato per comprimere alcuni tipi noti, come HTML e CSS, ma un mime-type che di solito manca è quello utilizzato per la comunicazione JSON che utilizza Vaadin, cioè application/json.

Vediamo come configurare Tomcat

In Tomcat, è necessario configurare il connettore per avere compression="on" ed impostare compressableMimeType con l'appropriato mime-type (il default di Tomcat 7 è "text/html, text/xml, text/plain", ed effettivamente manca application/json). Inoltre, è possibile impostare il compressionMinSize per soddisfare le raccomandazioni di Google. E' possibile farlo nel file server.xml:

<Connector port="8080"
   …OTHER STUFF...
   compression="on"
   compressionMinSize="500"
   compressableMimeType="text/html,text/xml,text/plain,application/javascript,application/json"/>

Buon utilizzo!

giovedì 26 gennaio 2012

Escape SQL strings in Java

Capita spesso di dover elaborare stringhe di testo per eliminare i caratteri speciali. Per questo scopo possiamo avvalerci della classe StringEscapeUtils di Apache Commons.

Ecco un esempio:
import org.apache.commons.lang.StringEscapeUtils;

public class StringUtilsEscapeExampleV1 {

  public static void main(String args[]) {
    String unescapedJava = "Are you for real?";
    System.err.println(
      StringEscapeUtils.escapeJava(unescapedJava));

    String unescapedJavaScript = "What's in a name?";
    System.err.println(
      StringEscapeUtils.escapeJavaScript(unescapedJavaScript));

    String unescapedSql = "Mc'Williams";
    System.err.println(
      StringEscapeUtils.escapeSql(unescapedSql));

    String unescapedXML = "";
    System.err.println(
      StringEscapeUtils.escapeXml(unescapedXML));

    String unescapedHTML = "";
    System.err.println(
      StringEscapeUtils.escapeHtml(unescapedHTML));

  }
}
Oppure, nei casi più semplici, possiamo usare un semplice replaceAll() che sostituisce tutte le occorrenze di un dato carattere. Ad esempio, quando si lavora con stringhe SQL, causano problemi i singoli apici ( ' ), che è possibile rimpiazzare semplicemente con stringa.replaceAll("'", "''")

mercoledì 25 gennaio 2012

Aggiungere elementi ad una Table in Vaadin

Vediamo come aggiungere elementi ad una Table in Vaadin

Innanzitutto bisogna definire i campi della tabella:
table.addContainerProperty("field1", String.class, null);
table.addContainerProperty("field2", Integer.class, null);

Poi, per aggiungere elementi alla tabella, possiamo specificarne il numero di riga:
table.addItem(new Object[] { field1TextField.getValue(), field2TextField.getValue(), new Integer(1));
table.addItem(new Object[] { field1TextField.getValue(), field2TextField.getValue(), new Integer(2));

oppure impostare null come numero di riga, in questo modo verrà effettuato un append a fine tabella:
table.addItem(new Object[] { field1TextField.getValue(), field2TextField.getValue(), null);

mercoledì 18 gennaio 2012

Modifica titolo pagina "Categorie" in Virtuemart

Per modificare il titolo della pagina "Categorie" di Virtuemart bisogna modificare il file /administrator/components/com_virtuemart/languages/common/italian.php

lunedì 9 gennaio 2012

Vaadin Table getValue vs getItem



In Vaadin ci sono due modi per ottenere informazioni da una riga selezionata su una tabella al suo click:

Metodo1
table.addListener(new ItemClickListener () {
@Override
public void itemClick(ItemClickEvent event) {
Item item = table.getItem(event.getItemId());
Object myObjectProperty = item.getItemProperty("myProperty").getValue();
}
});

Metodo2
table.addListener(new ItemClickListener () {
@Override
public void itemClick(ItemClickEvent event) {
Object rowId = table.getValue();
Object myObjectProperty =  table.getContainerProperty(rowId, "myProperty").getValue();
}
});

Alcune volte il metodo2 mi ha dato problemi, restituendo null come rowId.


giovedì 5 gennaio 2012

Vaadin Checkbox Listener

Utilizzando il componente Checkbox di Vaadin ho avuto qualche problema con i listener quando il componente Checkbox lo utilizzavo anche come campo di una tabella.

Ho dovuto sostituire il listener:


checkbox.addListener(new Property.ValueChangeListener() {
   public void valueChange(ValueChangeEvent event) {
    //esegui codice
   }
});


con il listerer:


checkbox.addListener(new ClickListener() {

@Override
public void buttonClick(ClickEvent event) {
boolean enabled = event.getButton().booleanValue();
if(enabled) {
//esegui codice
} else {
//esegui codice
}
}
});


DigitalOcean, un eccezionale servizio di Cloud Hosting, da provare! Inoltre, suggerendolo puoi guadagnare :)

Cerca su Wiki

Cerca su Google

Cerca nel Blog con Google