Looking for Troubles: From One to Many

I just wanted to add support for services on whole list of contacts to the contacts framework. Looked pretty easy, as all the structures and algorithms were already done for single contacts and should just be a Copy,Paste&Adapt job.

Of course, things were/are not that easy. I have found some questions:
Should a service be only shown if it supports all of the contacts in a list, or also if only some of them are? Make it configurable? Per usage, e.g. button? If one selects the service “Email to…” she might expect to be writing to all in the list, not?

And if a property has several variants, like email addresses, is it okay to always use the default variant? For single contacts by now an action is added for every variant, but for several contacts is would be pretty useless to add an entry for every combination of variants, I guess.

And I wonder which services should support lists of contacts. Would e.g. one want to have all the cards of a list of contacts appear together? If some want, should this be configurable for each contact list appearance? And for each service?

I gave myself some answers. But they tend to result in inconsistent treatment of single contacts and whole lists of contacts. Not perfect.

Another thing that makes me currently not too pleased is ending with class names like ListAllPropertiesDefaultDataActionServiceMenuFiller. I do wonder if I have lost my track. But each term inside the name is needed to differ the class from similiar ones:

  • List, because there is a menu filler for single contacts
  • AllProperties, because there are menus for only one property
  • Default, because this limits the shown services to only some (so things like “Copy address” are optionally left out)
  • DataAction, as it’s about actions for given data (e.g. by Drag’n’Drop)
  • Service, could be left out, but makes basic class ambigous
  • Menu, because there also fillers of buttons
  • Filler, because that is what it does

The class is the one putting the actions into the menu which appears on a drop on a list button. It also cares to execute the service of the chosen menu entry, and updates menu entries if a service signals a change in it’s availability, given it works in a dynamic system (like instant messaging):
Send a file to a list of contacts by dropping it

I hacked it now to an end, so it just works. And finally it takes me only two clicks to begin an email to a whole groups of people from Kicker 🙂
But the list support really needs another thought. Looks, like I found something new to do when sitting in the train to and back from the family…


2 thoughts on “Looking for Troubles: From One to Many

  1. Yes. But it did not match my needs. I wanted some proxy objects for all my contacts, like the buttons on the Kicker panel which somehow represent a person. And then I had the idea for a generic treatment of contacts, so new properties like a flickr account or a second homepage are no second class properties.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.