31 agosto 2010

Plugins "GWT developer plugin" per chrome e firefox

14 marzo 2010

Ubuntu 9.10 e stampante hp laserjet 1020

Avevo perso ogni speranza. Non riuscivo più a far funzionare la mia bella stampantina hp1020 su ubuntu.
In giro nel web se ne trovano di guide. Installare foo2js, hplip, poi fai make install, e così via.
Ma niente da fare.
Ma da qualche parte ho letto che foo2js e il driver di hplib potevano andare in conflitto. Vuoi vedere che ...
Insomma è bastato disinstallare foo2js.

$ sudo apt-get remove foo2js

Se si è installato foo2js scaricandosi lo zip, dalla cartella dove si è unzippato:

$ sudo  make uninstall

22 febbraio 2010

GWT: forzare la visualizzazione per il suggestBox

Indice dei tutorials: http://gheryd.blogspot.com/2011/06/javascript-gwt-tutorials.html

Come forzare la visualizzazione di tutti i valori nell'elenco del SuggestBox sull' evento "onFocus":

 
 List list = new ArrayList();  
 
 for(int i=0;i<20;i++) list.add("item_"+i); // populate
 
 MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();  
 oracle.addAll(list);  
 oracle.setDefaultSuggestionsFromText(list);  

 final SuggestBox sb = new SuggestBox(oracle);  

 sb.getTextBox().addFocusHandler(new FocusHandler() {  
    @Override  
    public void onFocus(FocusEvent event) {  
       if(sb.getTextBox().getText().trim().length()==0) {  
           sb.showSuggestionList();  
       }  
    }  
 });  

Nota: il metodo "setDefaultSuggestionsFromText(list)" specifica che cosa visualizzare se la textbox è vuota, cioè senza un elemento di filtraggio

16 febbraio 2010

Plugin GWT per eclipse non viene aggiornato

Mi è capitato che il plugin di gwt per eclipse non si aggiornasse (per esempio dalla version 1.7 alla 2.0, nonostante la notifica!).
Ho risolto disinstallando semplicemente il vecchio plugin:
  • nel menu help->install new software...
  • sulla finestra di dialogo cliccare sul link "what is already installed?" e compare un'altra finestra "Eclipse installation detail" (oppure dal menu help->about eclipse cliccare sul pulsante "installation details")
  • nella finestra "Eclipse installation detail" selezionare tenendo premuto il tasto tutte ctrl le tre voci riguardanti google e poi cliccare sul bottone "uninstall".

Ora è possibile installare il plugin GWT nuova version per eclipse:
  • ritornare sulla finestra di "install new software", 
  • cliccare sul combo in alto, scegliere l'url di google, e premere invio (dovrebbe essere già nell'elenco, è lo stesso del vecchio plugin, altrimenti aggiungero con il tasto "add")
  • Credo che sia un bug di eclipse, ma a me non compariva nulla, premere invio sulla casella "type text filter" (fare uno spazio, o premere 'g' insomma giocarci un po' finchè non compare l'elenco nel riquadro sotto)
    Insomma, dovrebbe comparire l'elenco  delle voci relativo al GWT nuova versione. 
  • Selezionare tutto e procedere nell'installazione.

Ubuntu: aggiungere il server Tomcat 6 su Netbeans

NetBeans 6.8 (su Ubuntu 9.10) non riuscivo ad aggiungere una configurazione per il server tomcat 6: l'errore visualizzato diceva che mancava la cartella conf dove reperire il file server.xml.
Su linux questi problemi si risolvono facilmente creando dei link simbolici.
Occorre quindi creare il link simbolico "conf" -> /etc/tomca6 sotto la cartella /usr/share/tomcat6:

gheryd@gheryd-laptop:~$ cd /usr/share/tomcat6
gheryd@gheryd-laptop:/usr/share/tomcat6$ sudo ln -s /etc/tomcat6/ conf

gheryd@gheryd-laptop:/usr/share/tomcat6$ ls -la
totale 32
drwxr-xr-x   6 root root  4096 2010-02-16 10:48 .
drwxr-xr-x 341 root root 12288 2010-02-04 12:00 ..
drwxr-xr-x   2 root root  4096 2010-02-12 10:03 bin
lrwxrwxrwx   1 root root    13 2010-02-16 10:48 conf -> /etc/tomcat6/
drwxr-xr-x   2 root root  4096 2010-02-12 10:03 lib
drwxr-xr-x   4 root root  4096 2009-11-01 16:02 skel
drwxr-xr-x   3 root root  4096 2009-11-01 16:01 webapps


Su NetBeans inserire sul campo server location "/usr/share/tomcat6"

15 febbraio 2010

GWT 2.0, gwt-gears-1.2.1 e gears 0.5

Indice dei tutorials: http://gheryd.blogspot.com/2011/06/javascript-gwt-tutorials.html

Utilizzando GWT 2.0 con le api gwt-gears-1.2.1, noto che mancano un po' di oggetti e metodi di gears 0.5. Così ho fixato!
Intanto per la modalità offline non viene correttamente generato il manifest per il managedResourceStore (per accedere all'applicazione offline). Ho risolto creando la cartella "public" (folder, non package) a pari livello del package client e server (come nella versione gwt 1.5). All'interno di public ho creato il file manifest "GearsManifest.json" in cui aggiungo le risorse da mettere nel managed resource store:
// This is an example of a custom manifest
{"betaManifestVersion" : 1,
    "version" : "__VERSION__",
    "entries" : [
       // The following line will be automatically expanded
       __ENTRIES__,
        {"url":"../Test_gwt_gears.html"},
        {"url":"../Test_gwt_gears.css"}
   ]
}
Ora, nell'oggetto ResourceStore mancano un paio di metodi essenziali: captureBlob e getAsBlob.
Allora ho creato questa classettina wrapper (ResourceStore non si può estendere perchè final):


public class ResourceStoreExt {
private ResourceStore resourceStore;
public ResourceStoreExt(ResourceStore resourceStore) {
this.resourceStore = resourceStore;
}
public ResourceStore getResourceStore() {
return resourceStore;
}
public void captureBlob(Blob blob, String url) {
captureBlob(resourceStore, blob, url);
}
public Blob getAsBlob(String url) {
return getAsBlob(resourceStore, url);
}
private native void captureBlob(ResourceStore resourceStore, Blob blob, String url) /*-{
resourceStore.captureBlob(blob, url);
}-*/;
private native Blob getAsBlob(ResourceStore resourceStore, String url) /*-{
return resourceStore.getAsBlob(url);
}-*/;
}
Manca anche l'oggetto Canvas che è utile per il resize delle immagini: 
public final class Canvas extends JavaScriptObject {
public final static String NEAREST_NEIGHBOR_FILTER = "nearest";
public final static String BILINEAR_FILTER = "bilinear";
public final static String PNG_MIMETYPE = "image/png";
public final static String JPG_MIMETYPE = "image/jpeg";
public static Canvas createInstance() {
return createInstance(Factory.getInstance());
}
private static native Canvas createInstance(Factory factory) /*-{
return factory.create("beta.canvas");
}-*/;
protected Canvas() {
}
public native int getWidth() /*-{
return this.width;
}-*/;
public native int getHeight() /*-{
return this.height;
}-*/;
public native void setWidth(int w) /*-{
this.width = w;
}-*/;
public native void setHeight(int h) /*-{
this.height = h;
}-*/;
public native void crop(int x, int y, int w, int h) /*-{
this.crop(x, y, w, h);
}-*/;
public native void decode(Blob blob) throws Exception /*-{
this.decode(blob);
}-*/;
public native Blob encode() /*-{
return this.encode();
}-*/;
public native Blob encode(String mimeType) /*-{
return this.encode(mimeType);
}-*/;
public native void resize(int w, int h) /*-{
this.resize(w, h);
}-*/;
public native void resize(int w, int h, String filter) /*-{
this.resize(w, h, filter);
}-*/;
}
E infine la classe BlobBuilder (forse poco utile):
public final class BlobBuilder extends JavaScriptObject {
public static BlobBuilder createInstance() {
return createInstance(Factory.getInstance());
}
private static native BlobBuilder createInstance(Factory factory)/*-{
return factory.create("beta.blobbuilder");
}-*/;
protected BlobBuilder() {
}
/**
   *
    * @param data UTF-8
    */
public native void append(String data)/*-{
this.append(data);
}-*/;
public native Blob getAsBlob()/*-{
return this.getAsBlob();
}-*/;
}