package org.nightlabs.jfire.contact.email.ui;
import java.awt.Desktop;
import java.net.URI;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IViewActionDelegate;
import org.eclipse.ui.IViewPart;
import org.nightlabs.jfire.contact.ui.ContactDetailView;
import org.nightlabs.jfire.person.PersonStruct;
import org.nightlabs.jfire.prop.DataField;
import org.nightlabs.jfire.prop.PropertySet;
/**
* @author Daniel Mazurek <daniel at nightlabs dot de>
*
*/
public class ContactDetailEMailAction implements IViewActionDelegate
{
private ContactDetailView view;
@Override
public void init(IViewPart view) {
this.view = (ContactDetailView) view;
}
@Override
public void run(IAction action) {
final PropertySet selectedPerson = view.getPerson();
if (selectedPerson == null || !Desktop.isDesktopSupported())
return;
try {
DataField emailField = selectedPerson.getDataField(PersonStruct.INTERNET_EMAIL);
String email = (String) emailField.getData();
URI mailtoURI = new URI("mailto:"+email);
Desktop.getDesktop().mail(mailtoURI);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void selectionChanged(IAction action, ISelection selection) {
// do nothing
}
}