500712: improve owner/assigned to section of Task List tooltip

* display the blue person icon next to the assignee for tasks assigned
to other people
* insert a colon into the tooltip "Assigned To: user"
* when there is no assignee the tooltip will read "Assigned To:
Unassigned"
* Local tasks will no longer display shows "Assigned To local"

Change-Id: I723a5d4e9c826ebe9af3c293e19eadb98fcd9272
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=500712
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java
index a5ddc1e..102c195 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java
@@ -85,6 +85,8 @@
 
 	public static String TaskListToolTip_Incoming_Outgoing;
 
+	public static String TaskListToolTip_Unassigned;
+
 	public static String TaskListView_Mylyn_context_capture_paused;
 
 	public static String TaskListView__paused_;
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java
index e8bd1aa..19e4bbb 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java
@@ -35,6 +35,7 @@
 import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
 import org.eclipse.mylyn.internal.tasks.core.DateRange;
 import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
+import org.eclipse.mylyn.internal.tasks.core.LocalTask;
 import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
 import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
 import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
@@ -262,23 +263,26 @@
 	}
 
 	private String getOwnerText(IRepositoryElement element) {
-		if (element instanceof ITask) {
+		if (element instanceof ITask && !(element instanceof LocalTask)) {
 			String owner = ((ITask) element).getOwner();
-			if (owner != null) {
+			if (!Strings.isNullOrEmpty(owner)) {
 				return NLS.bind(Messages.TaskListToolTip_Assigned_to_X, owner);
 			}
+			return NLS.bind(Messages.TaskListToolTip_Assigned_to_X, Messages.TaskListToolTip_Unassigned);
 		}
 		return null;
 	}
 
 	private Image getOwnerImage(IRepositoryElement element) {
-		if (element instanceof ITask) {
+		if (element instanceof ITask && !(element instanceof LocalTask)) {
 			ITask task = (ITask) element;
 			AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(task.getConnectorKind());
 			TaskRepository repository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
 					task.getRepositoryUrl());
 			if (connector.isOwnedByUser(repository, task)) {
 				return CommonImages.getImage(CommonImages.PERSON_ME);
+			} else {
+				return CommonImages.getImage(CommonImages.PERSON);
 			}
 		}
 		return null;
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties
index 81173d0..66bab35 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties
@@ -31,7 +31,7 @@
 TaskListSorter_No_Grouping=None
 
 TaskListToolTip_Active_X=Active: {0}
-TaskListToolTip_Assigned_to_X=Assigned to {0}
+TaskListToolTip_Assigned_to_X=Assigned to: {0}
 TaskListToolTip_Automatic_container_for_all_local_tasks=Automatic container for all local tasks\nwith no category set
 TaskListToolTip_Automatic_container_for_repository_tasks=Automatic container for repository tasks\nnot matched by any query
 TaskListToolTip_Due=Due: {0}, {1} ({2})
@@ -42,6 +42,7 @@
 TaskListToolTip_Synchronized=Synchronized: {0}
 TaskListToolTip_Total_Complete_Incomplete=Total: {0} (Complete: {1}, Incomplete: {2})
 TaskListToolTip_Incoming_Outgoing=Incoming: {0}, Outgoing: {1}
+TaskListToolTip_Unassigned=Unassigned
 
 TaskListView_Mylyn_context_capture_paused=Mylyn context capture paused
 TaskListView__paused_=(paused)