buzzbird

Live, Tweet, Breathe, Open Source.


Autocomplete friends’ names – Unsatisfactory Progress

I spent a while today trying to get auto-complete of friend names working.  I tried several different mechanisms:

  1. I added jQuery to Buzzbird, and tried to use it on XUL documents directly.  I hoped that XUL and HTML were similar enough that I’d be able to use a jQuery autocomplete plugin to do the autocompletion, but had no luck. I patched up jQuery a bit, and tried out two different plugins, but ran into too many roadblocks to ever make it work.
  2. XUL has auto-complete text fields, so I tried using one, along with a custom component that allowed me to populate the valid auto-completions programatically.  Unfortunately, the XUL widgets that support built-in autocompletion do not support multi-line entry with word-wrap, so even though I managed to get the completion drop-down list to work, it’s not a viable solution.
  3. I tried making my own popup using XUL popup menu elements, and I made the popup appear when the user hit the @ sign while typing.  Unfortunately, XUL popup menus appear to be modal, and forcing the user to choose from a list when a list item may not even be applicable won’t work

I did manage to get the Twitter API call to fetch all your friends’ screen names working, but because I can’t get the UI to do what I want, it’s kinda useless right now.  I’m pretty bummed and frustrated.  I’ll probably have to release 0.8 without this feature.

I might be able to build in a sort-of “address book” feature that a user could bring up if they forget the name of a friend, but that falls short of my original goal of username completion by quite a bit.

Tags:

This entry was posted on Monday, July 26th, 2010 at 16:58 and is filed under Blog. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>