Saturday, November 26, 2011

Ubuntu 11.10 Post installations

Just got my notebook updated to Ubuntu 11.10. If you are doing so or planning to do so, then this will be a good article about post-installation goodies you might be interested in apt-get'ing. Enjoy and I hope it doesn't cost you too much fuss.

Also this if you'd like to install CompizConfig settings manager to customize how ubuntu 11.10 look.

And this to install gnome-session or gnome-session-classic if you just can't get use to the current look of Ubuntu 11.10

Thursday, November 24, 2011

Little Password Text Widget ... TriplePlay

Hack around a little bit to get a little Password Text Widget from TriplePlay, again crude but works for me ...
public class PasswordField extends Field {
 @Override 
 protected String getLayoutText () {
        String ltext = text.get();
        // we always want non-empty text so that we force ourselves to always have a text layer and
        // sane dimensions even if the text field contains no text
        if (ltext == null || ltext.length() == 0) {
         return " "; 
        }
        StringBuffer r = new StringBuffer();
        for (int a=0; a<ltext.length(); a++) {
         r.append("*");
        }
        return r.toString();
    } 
}

An Image based Text Widget for TriplePlay

Starting to look into PlayN for a bit and whole bunch of utilities build for it like TriplePlay and React. I like the way TriplePlay struture it's widgets. You developed using TriplePlay widgets and it works across platforms without being dependent on the platform's native machinery. Following is a crude way to implement an Text display widget that source it's text from image. Hopefully, TriplePlay will incorporate more of such components into it's distribution. TriplePlay is still young so there're definitely plenty of room for enhancements.

A bit crude but it works.

public abstract class AbstractImageTextWidget<T extends AbstractImageTextWidget<T>> extends TextWidget<T> {
  public AbstractImageTextWidget(String text) {
    this(text, null);
  }
  public AbstractImageTextWidget(String text, Image icon) {
    this.text.update(text);
    if (icon != null)
      setIcon(icon);
  }
  protected void createTextLayer(LayoutData ldata, float tx, float ty, float twidth, float theight, float availWidth, float availHeight) {
    if (twidth > 0 && theight > 0) {
      tlayer = prepareCanvas(_tlayer, twidth, theight);
      char[] textArray = text.get().toCharArray();
      float eachTextWidth = twidth / textArray.length; 
      if (textArray.length > 0) {
        for (int a=0 ; a<textArray.length; a++) {
          Image i = getCharMap().get(Character.toLowerCase(textArray[a]));
          if (i != null) 
            _tlayer.canvas().drawImage(i, a*eachTextWidth, 0f, eachTextWidth, theight);
        }
      }
      tlayer.setTranslation(tx + ldata.halign.offset(twidth, availWidth), ty + ldata.valign.offset(theight, availHeight));
    }
  }
  protected abstract Map<Character, Image> getCharMap();
}

Wednesday, November 23, 2011

Moving to Blogger

I used to have a blog in JRoller, but I guess I'll be moving on now to Blogger. Yippie. :)