Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Becker2013-03-03 15:08:07 -0500
committerGerrit Code Review @ Eclipse.org2013-08-12 13:54:37 -0400
commit784655946dad87c784b454edc071eb523a7f2afa (patch)
tree1c88f2ffd88aa2b0fce484a5e820148fa677bc35 /org.eclipse.mylyn.tasks.ui
parent7e23336cddc377a9ef827a71c687c229fa2990bb (diff)
downloadorg.eclipse.mylyn.tasks-784655946dad87c784b454edc071eb523a7f2afa.tar.gz
org.eclipse.mylyn.tasks-784655946dad87c784b454edc071eb523a7f2afa.tar.xz
org.eclipse.mylyn.tasks-784655946dad87c784b454edc071eb523a7f2afa.zip
398835: add error icon when LastSynchronizedTimeStamp() is <never> and
we get SocketTimeout Change-Id: Ib94a98e7eacc45d91071f0c9c5348bd3f30732c0 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=398835
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java2
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java4
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties1
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java18
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java7
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java9
6 files changed, 36 insertions, 5 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java
index ec143d0d2..61a34e5e3 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java
@@ -117,6 +117,8 @@ public class Messages extends NLS {
public static String UiLegendControl_Synchronization_failed;
+ public static String UiLegendControl_Synchronization_error;
+
public static String UiLegendControl_Task;
public static String UiLegendControl_Task_Activity;
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java
index a580a6475..60365bd9f 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java
@@ -435,6 +435,10 @@ public class UiLegendControl extends Composite {
toolkit.createLabel(synchroClient, Messages.UiLegendControl_Synchronization_failed);
imageLabel = toolkit.createLabel(synchroClient, ""); //$NON-NLS-1$
+ imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_SYNC_ERROR));
+ toolkit.createLabel(synchroClient, Messages.UiLegendControl_Synchronization_error);
+
+ imageLabel = toolkit.createLabel(synchroClient, ""); //$NON-NLS-1$
imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_SYNC_CONFLICT));
toolkit.createLabel(synchroClient, Messages.UiLegendControl_Conflicting_changes);
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties
index fbfe2786a..bad7b336c 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties
@@ -56,6 +56,7 @@ UiLegendControl_Query=Query
UiLegendControl_Scheduled_for_today=Scheduled for today
UiLegendControl_Synchronization=Synchronization
UiLegendControl_Synchronization_failed=Synchronization failed, mouse over for details
+UiLegendControl_Synchronization_error=Synchronization error, mouse over for details
UiLegendControl_Task=Task
UiLegendControl_Task_Activity=Task Activity
UiLegendControl_Task_Context=Task Context
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java
index 219132f7e..c68636eda 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java
@@ -14,6 +14,7 @@
package org.eclipse.mylyn.internal.tasks.ui.util;
import java.net.MalformedURLException;
+import java.net.SocketTimeoutException;
import java.net.URL;
import java.text.MessageFormat;
import java.util.ArrayList;
@@ -1454,4 +1455,21 @@ public class TasksUiInternal {
return taskDropHandler;
}
+ public static ImageDescriptor getIconFromStatusOfQuery(RepositoryQuery query) {
+ ImageDescriptor image;
+ boolean showError = false;
+ Throwable exception = query.getStatus().getException();
+ showError = (query.getLastSynchronizedTimeStamp().equals("<never>") //$NON-NLS-1$
+ && ((RepositoryStatus.ERROR_IO == query.getStatus().getCode() && exception != null && exception instanceof SocketTimeoutException) || //
+ // only when we change SocketTimeout or Eclipse.org change there timeout for long running Queries
+ (RepositoryStatus.ERROR_NETWORK) == query.getStatus().getCode()
+ && query.getStatus().getMessage().equals("Http error: Internal Server Error"))); //$NON-NLS-1$
+ if (showError) {
+ image = CommonImages.OVERLAY_SYNC_ERROR;
+ } else {
+ image = CommonImages.OVERLAY_SYNC_WARNING;
+ }
+ return image;
+ }
+
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java
index 26d1d3498..c1e1ccd18 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java
@@ -25,6 +25,7 @@ import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
import org.eclipse.mylyn.internal.tasks.ui.AbstractTaskListFilter;
import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
+import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
import org.eclipse.mylyn.tasks.core.ITask;
import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
@@ -204,7 +205,7 @@ public class CustomTaskListDecorationDrawer implements Listener {
} else if (element instanceof IRepositoryQuery) {
RepositoryQuery query = (RepositoryQuery) element;
if (query.getStatus() != null) {
- image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_WARNING);
+ image = CommonImages.getImage(TasksUiInternal.getIconFromStatusOfQuery(query));
if (synchronizationOverlaid) {
imageOffset = 11;
} else {
@@ -306,9 +307,7 @@ public class CustomTaskListDecorationDrawer implements Listener {
}
} else if (element instanceof IRepositoryQuery) {
RepositoryQuery query = (RepositoryQuery) element;
- if (query.getStatus() != null) {
- return CommonImages.OVERLAY_SYNC_WARNING;
- }
+ return TasksUiInternal.getIconFromStatusOfQuery(query);
}
// HACK: need a proper blank image
return CommonImages.OVERLAY_CLEAR;
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 32ff4b1fb..40d7bf0c2 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
@@ -331,6 +331,13 @@ public class TaskListToolTip extends GradientToolTip {
return null;
}
+ private Image getStatusIcon(IRepositoryElement element) {
+ if (element instanceof RepositoryQuery) {
+ return CommonImages.getImage(TasksUiInternal.getIconFromStatusOfQuery((RepositoryQuery) element));
+ }
+ return CommonImages.getImage(CommonImages.WARNING);
+ }
+
private String getStatusText(IRepositoryElement element) {
IStatus status = null;
if (element instanceof AbstractTask) {
@@ -556,7 +563,7 @@ public class TaskListToolTip extends GradientToolTip {
String statusText = getStatusText(currentTipElement);
if (statusText != null) {
- addIconAndLabel(composite, CommonImages.getImage(CommonImages.WARNING), statusText);
+ addIconAndLabel(composite, getStatusIcon(currentTipElement), statusText);
}
String helpText = getHelpText(currentTipElement);

Back to the top