Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfbecker2010-02-20 19:03:26 +0000
committerfbecker2010-02-20 19:03:26 +0000
commit49254ec98ad169d2229879550400ca1c5d886b4f (patch)
treee15f3a983b1e513de042f024fd161958ba4311ee
parent7f6da34266984e4b90dafdf3c73eacb97dd59449 (diff)
downloadorg.eclipse.mylyn.tasks-49254ec98ad169d2229879550400ca1c5d886b4f.tar.gz
org.eclipse.mylyn.tasks-49254ec98ad169d2229879550400ca1c5d886b4f.tar.xz
org.eclipse.mylyn.tasks-49254ec98ad169d2229879550400ca1c5d886b4f.zip
ASSIGNED - bug 303411: cleanup of CustomTaskListDecorationDrawer
https://bugs.eclipse.org/bugs/show_bug.cgi?id=303411
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java49
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDelayedRefreshJob.java34
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java21
3 files changed, 73 insertions, 31 deletions
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 061be3286..58bdd9a10 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
@@ -39,10 +39,11 @@ import org.eclipse.swt.widgets.TreeItem;
/**
* @author Mik Kersten
+ * @author Frank Becker
*/
-class CustomTaskListDecorationDrawer implements Listener {
+public class CustomTaskListDecorationDrawer implements Listener {
- private final TaskListView taskListView;
+ private final TaskListDelayedRefreshJob delayedRefreshJob;
private final int activationImageOffset;
@@ -61,27 +62,34 @@ class CustomTaskListDecorationDrawer implements Listener {
private boolean useStrikethroughForCompleted;
+ private boolean synchronizationOverlaid;
+
private final org.eclipse.jface.util.IPropertyChangeListener PROPERTY_LISTENER = new org.eclipse.jface.util.IPropertyChangeListener() {
public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) {
if (event.getProperty().equals(ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED)) {
if (event.getNewValue() instanceof Boolean) {
useStrikethroughForCompleted = (Boolean) event.getNewValue();
- taskListView.refresh();
+ delayedRefreshJob.refresh();
+ }
+ } else if (event.getProperty().equals(ITasksUiPreferenceConstants.OVERLAYS_INCOMING_TIGHT)) {
+ if (event.getNewValue() instanceof Boolean) {
+ synchronizationOverlaid = (Boolean) event.getNewValue();
+ delayedRefreshJob.refresh();
}
}
}
};
- CustomTaskListDecorationDrawer(TaskListView taskListView, int activationImageOffset) {
- this.taskListView = taskListView;
+ CustomTaskListDecorationDrawer(TaskListDelayedRefreshJob delayedRefreshJob, int activationImageOffset) {
+ this.delayedRefreshJob = delayedRefreshJob;
this.activationImageOffset = activationImageOffset;
this.lastClippingArea = new Rectangle(0, 0, 0, 0);
this.tweakClipping = PlatformUtil.isPaintItemClippingRequired();
this.platformSpecificSquish = PlatformUtil.getTreeItemSquish();
- this.taskListView.synchronizationOverlaid = TasksUiPlugin.getDefault().getPluginPreferences().getBoolean(
+ this.synchronizationOverlaid = TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
ITasksUiPreferenceConstants.OVERLAYS_INCOMING_TIGHT);
- this.useStrikethroughForCompleted = TasksUiPlugin.getDefault().getPluginPreferences().getBoolean(
+ this.useStrikethroughForCompleted = TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED);
TasksUiPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(PROPERTY_LISTENER);
}
@@ -129,7 +137,7 @@ class CustomTaskListDecorationDrawer implements Listener {
// if (activationImage != null) {
// drawActivationImage(activationImageOffset, event, activationImage);
// }
-// if (!this.taskListView.synchronizationOverlaid) {
+// if (!this.synchronizationOverlaid) {
// if (data instanceof ITaskContainer) {
// drawSyncronizationImage((ITaskContainer) data, event);
// }
@@ -176,19 +184,18 @@ class CustomTaskListDecorationDrawer implements Listener {
Image image = null;
int offsetX = PlatformUtil.getIncomingImageOffset();
int offsetY = (event.height / 2) - 5;
- if (taskListView.synchronizationOverlaid) {
+ if (synchronizationOverlaid) {
offsetX = event.x + 18 - platformSpecificSquish;
offsetY += 2;
}
if (element != null) {
if (element instanceof ITask) {
- image = CommonImages.getImage(getSynchronizationImageDescriptor(element,
- taskListView.synchronizationOverlaid));
+ image = CommonImages.getImage(getSynchronizationImageDescriptor(element, synchronizationOverlaid));
} else {
int imageOffset = 0;
if (!hideDecorationOnContainer(element, (TreeItem) event.item)
&& AbstractTaskListFilter.hasDescendantIncoming(element)) {
- if (taskListView.synchronizationOverlaid) {
+ if (synchronizationOverlaid) {
image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_OLD_INCOMMING);
} else {
image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_INCOMMING);
@@ -197,7 +204,7 @@ class CustomTaskListDecorationDrawer implements Listener {
RepositoryQuery query = (RepositoryQuery) element;
if (query.getStatus() != null) {
image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_WARNING);
- if (taskListView.synchronizationOverlaid) {
+ if (synchronizationOverlaid) {
imageOffset = 11;
} else {
imageOffset = 3;
@@ -206,12 +213,12 @@ class CustomTaskListDecorationDrawer implements Listener {
}
int additionalSquish = 0;
- if (platformSpecificSquish > 0 && taskListView.synchronizationOverlaid) {
+ if (platformSpecificSquish > 0 && synchronizationOverlaid) {
additionalSquish = platformSpecificSquish + 3;
} else if (platformSpecificSquish > 0) {
additionalSquish = platformSpecificSquish / 2;
}
- if (taskListView.synchronizationOverlaid) {
+ if (synchronizationOverlaid) {
offsetX = 42 - imageOffset - additionalSquish;
} else {
offsetX = 24 - imageOffset - additionalSquish;
@@ -226,7 +233,7 @@ class CustomTaskListDecorationDrawer implements Listener {
private boolean hideDecorationOnContainer(ITaskContainer element, TreeItem treeItem) {
if (element instanceof UnmatchedTaskContainer) {
- if (!taskListView.isFocusedMode()) {
+ if (!delayedRefreshJob.isFocusedMode()) {
return false;
} else if (AbstractTaskListFilter.hasDescendantIncoming(element)) {
return true;
@@ -238,7 +245,7 @@ class CustomTaskListDecorationDrawer implements Listener {
}
}
- if (!taskListView.isFocusedMode()) {
+ if (!delayedRefreshJob.isFocusedMode()) {
return false;
} else if (element instanceof IRepositoryQuery || element instanceof TaskCategory) {
return treeItem.getExpanded();
@@ -306,4 +313,12 @@ class CustomTaskListDecorationDrawer implements Listener {
TasksUiPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(PROPERTY_LISTENER);
}
+ public void setUseStrikethroughForCompleted(boolean useStrikethroughForCompleted) {
+ this.useStrikethroughForCompleted = useStrikethroughForCompleted;
+ }
+
+ public void setSynchronizationOverlaid(boolean synchronizationOverlaid) {
+ this.synchronizationOverlaid = synchronizationOverlaid;
+ }
+
} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDelayedRefreshJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDelayedRefreshJob.java
new file mode 100644
index 000000000..f7f645ce4
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDelayedRefreshJob.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Frank Becker and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Frank Becker - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.ui.views;
+
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.mylyn.internal.provisional.commons.ui.DelayedRefreshJob;
+
+public abstract class TaskListDelayedRefreshJob extends DelayedRefreshJob {
+
+ private boolean focusedMode;
+
+ public TaskListDelayedRefreshJob(StructuredViewer viewer, String name, boolean focusedMode) {
+ super(viewer, name);
+ this.focusedMode = focusedMode;
+ }
+
+ public boolean isFocusedMode() {
+ return focusedMode;
+ }
+
+ public void setFocusedMode(boolean focusedMode) {
+ this.focusedMode = focusedMode;
+ }
+
+}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
index d7b92c362..c22c7bb54 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
@@ -56,7 +56,6 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.mylyn.commons.core.StatusHandler;
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
-import org.eclipse.mylyn.internal.provisional.commons.ui.DelayedRefreshJob;
import org.eclipse.mylyn.internal.provisional.commons.ui.SubstringPatternFilter;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
@@ -178,10 +177,10 @@ import org.eclipse.ui.themes.IThemeManager;
*/
public class TaskListView extends ViewPart implements IPropertyChangeListener, IShowInTarget {
- private final class TaskListRefreshJob extends DelayedRefreshJob {
+ private final class TaskListRefreshJob extends TaskListDelayedRefreshJob {
- private TaskListRefreshJob(TreeViewer treeViewer, String name) {
- super(treeViewer, name);
+ private TaskListRefreshJob(TreeViewer treeViewer, String name, boolean focusedMode) {
+ super(treeViewer, name, focusedMode);
}
@Override
@@ -420,8 +419,6 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener, I
*/
protected boolean isPaused = false;
- boolean synchronizationOverlaid = false;
-
private final Listener CATEGORY_GRADIENT_DRAWER = new Listener() {
public void handleEvent(Event event) {
if (event.item.getData() instanceof ITaskContainer && !(event.item.getData() instanceof ITask)) {
@@ -890,7 +887,7 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener, I
getViewer().getTree().setHeaderVisible(false);
getViewer().setUseHashlookup(true);
- refreshJob = new TaskListRefreshJob(getViewer(), "Task List Refresh"); //$NON-NLS-1$
+ refreshJob = new TaskListRefreshJob(getViewer(), "Task List Refresh", focusedMode); //$NON-NLS-1$
configureColumns(columnNames, columnWidths);
@@ -919,7 +916,7 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener, I
getViewer().setInput(getViewSite());
final int activationImageOffset = PlatformUtil.getTreeImageOffset();
- customDrawer = new CustomTaskListDecorationDrawer(this, activationImageOffset);
+ customDrawer = new CustomTaskListDecorationDrawer(refreshJob, activationImageOffset);
getViewer().getTree().addListener(SWT.EraseItem, customDrawer);
getViewer().getTree().addListener(SWT.PaintItem, customDrawer);
@@ -1373,7 +1370,7 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener, I
boolean isInRenameAction = false;
- private DelayedRefreshJob refreshJob;
+ private TaskListDelayedRefreshJob refreshJob;
private boolean itemNotFoundExceptionLogged;
@@ -1563,6 +1560,7 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener, I
return;
}
this.focusedMode = focusedMode;
+ refreshJob.setFocusedMode(focusedMode);
IToolBarManager manager = getViewSite().getActionBars().getToolBarManager();
if (focusedMode && isAutoExpandMode()) {
@@ -1576,11 +1574,6 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener, I
updateFilterEnablement();
}
- public void setSynchronizationOverlaid(boolean synchronizationOverlaid) {
- this.synchronizationOverlaid = synchronizationOverlaid;
- getViewer().refresh();
- }
-
public void displayPrioritiesAbove(String priority) {
filterPriority.displayPrioritiesAbove(priority);
getViewer().refresh();

Back to the top