Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkersten2007-03-22 00:47:40 +0000
committermkersten2007-03-22 00:47:40 +0000
commit3bf6eb665e9f85c26b27b316ee80af9e8043d310 (patch)
treeed5fc505d7eca00d856aec9203376e4bcc29e25d /org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
parent2bd5d2f3883111336a5b1d97ac08bbabe32e675f (diff)
downloadorg.eclipse.mylyn.tasks-3bf6eb665e9f85c26b27b316ee80af9e8043d310.tar.gz
org.eclipse.mylyn.tasks-3bf6eb665e9f85c26b27b316ee80af9e8043d310.tar.xz
org.eclipse.mylyn.tasks-3bf6eb665e9f85c26b27b316ee80af9e8043d310.zip
RESOLVED - bug 176669: use cool RSS Owl category shading
https://bugs.eclipse.org/bugs/show_bug.cgi?id=176669
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java107
1 files changed, 61 insertions, 46 deletions
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 591986975..62ecdf860 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
@@ -255,6 +255,10 @@ public class TaskListView extends ViewPart {
int sortDirection = DEFAULT_SORT_DIRECTION;
+ private Color categoryGradientStart;
+
+ private Color categoryGradientEnd;
+
private final static int MAX_SELECTION_HISTORY_SIZE = 10;
private LinkedHashMap<String, IStructuredSelection> lastSelectionByTaskHandle = new LinkedHashMap<String, IStructuredSelection>(
@@ -290,6 +294,41 @@ public class TaskListView extends ViewPart {
*/
protected boolean isPaused = false;
+ private final Listener CATEGORY_GRADIENT_DRAWER = new Listener() {
+ public void handleEvent(Event event) {
+ if (event.item.getData() instanceof AbstractTaskContainer) {
+ Scrollable scrollable = (Scrollable) event.widget;
+ GC gc = event.gc;
+
+ Rectangle area = scrollable.getClientArea();
+ Rectangle rect = event.getBounds();
+
+ /* Paint the selection beyond the end of last column */
+ expandRegion(event, scrollable, gc, area);
+
+ /* Draw Gradient Rectangle */
+ Color oldForeground = gc.getForeground();
+ Color oldBackground = gc.getBackground();
+
+ gc.setForeground(categoryGradientStart);
+ gc.setBackground(categoryGradientEnd);
+ gc.fillGradientRectangle(0, rect.y, area.width, rect.height, true);
+
+ /* Bottom Line */
+ gc.setForeground(categoryGradientEnd);
+ gc.drawLine(0, rect.y + rect.height - 1, area.width, rect.y + rect.height - 1);
+
+ gc.setForeground(oldForeground);
+ gc.setBackground(oldBackground);
+
+ /* Mark as Background being handled */
+ event.detail &= ~SWT.BACKGROUND;
+ }
+ }
+ };
+
+ private boolean gradientListenerAdded = false;
+
private final ITaskActivityListener TASK_ACTIVITY_LISTENER = new ITaskActivityListener() {
public void taskActivated(final ITask task) {
if (task != null) {
@@ -440,6 +479,7 @@ public class TaskListView extends ViewPart {
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(IThemeManager.CHANGE_CURRENT_THEME)
|| TaskListColorsAndFonts.isTaskListTheme(event.getProperty())) {
+ updateGradientColors();
taskListTableLabelProvider.setCategoryBackgroundColor(themeManager.getCurrentTheme().getColorRegistry()
.get(TaskListColorsAndFonts.THEME_COLOR_TASKLIST_CATEGORY));
getViewer().refresh();
@@ -447,6 +487,22 @@ public class TaskListView extends ViewPart {
}
};
+ private void updateGradientColors() {
+ categoryGradientStart = themeManager.getCurrentTheme().getColorRegistry().get(
+ TaskListColorsAndFonts.THEME_COLOR_CATEGORY_GRADIENT_START);
+ categoryGradientEnd = themeManager.getCurrentTheme().getColorRegistry().get(
+ TaskListColorsAndFonts.THEME_COLOR_CATEGORY_GRADIENT_END);
+
+ if (gradientListenerAdded == false && categoryGradientStart != null
+ && !categoryGradientStart.equals(categoryGradientEnd)) {
+ getViewer().getTree().addListener(SWT.EraseItem, CATEGORY_GRADIENT_DRAWER);
+ gradientListenerAdded = true;
+ } else if (categoryGradientStart != null && categoryGradientStart.equals(categoryGradientEnd)){
+ getViewer().getTree().removeListener(SWT.EraseItem, CATEGORY_GRADIENT_DRAWER);
+ gradientListenerAdded = false;
+ }
+ }
+
public static TaskListView getFromActivePerspective() {
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (activePage != null) {
@@ -774,15 +830,15 @@ public class TaskListView extends ViewPart {
getViewer().getTree().setHeaderVisible(true);
getViewer().getTree().setLinesVisible(true);
getViewer().setUseHashlookup(true);
-
+
configureColumns(columnNames, columnWidths);
final IThemeManager themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager();
Color categoryBackground = themeManager.getCurrentTheme().getColorRegistry().get(
TaskListColorsAndFonts.THEME_COLOR_TASKLIST_CATEGORY);
- getViewer().setLabelProvider(
- new TaskListTableLabelProvider(new TaskElementLabelProvider(), PlatformUI.getWorkbench()
- .getDecoratorManager().getLabelDecorator(), categoryBackground, this));
+ taskListTableLabelProvider = new TaskListTableLabelProvider(new TaskElementLabelProvider(), PlatformUI
+ .getWorkbench().getDecoratorManager().getLabelDecorator(), categoryBackground, this);
+ getViewer().setLabelProvider(taskListTableLabelProvider);
CellEditor[] editors = new CellEditor[columnNames.length];
TextCellEditor textEditor = new TextCellEditor(getViewer().getTree());
@@ -800,7 +856,6 @@ public class TaskListView extends ViewPart {
applyPresentation(catagorizedPresentation);
-
drillDownAdapter = new DrillDownAdapter(getViewer());
getViewer().setInput(getViewSite());
getViewer().getTree().addKeyListener(new KeyListener() {
@@ -853,49 +908,10 @@ public class TaskListView extends ViewPart {
// Set to empty string to disable native tooltips (windows only?)
// bug#160897
- // ref:
// http://dev.eclipse.org/newslists/news.eclipse.platform.swt/msg29614.html
getViewer().getTree().setToolTipText("");
- getViewer().getTree().addListener(SWT.EraseItem, new Listener() {
- public void handleEvent(Event event) {
- if (event.item.getData() instanceof AbstractTaskContainer) {
- Scrollable scrollable = (Scrollable) event.widget;
- GC gc = event.gc;
-
- Rectangle area = scrollable.getClientArea();
- Rectangle rect = event.getBounds();
-
- /* Paint the selection beyond the end of last column */
- expandRegion(event, scrollable, gc, area);
-
- /* Draw Gradient Rectangle */
- Color oldForeground = gc.getForeground();
- Color oldBackground = gc.getBackground();
-
- /* Gradient */
- Color gradientStart = themeManager.getCurrentTheme().getColorRegistry().get(
- TaskListColorsAndFonts.THEME_COLOR_CATEGORY_GRADIENT_START);
-
- Color gradientEnd = themeManager.getCurrentTheme().getColorRegistry().get(
- TaskListColorsAndFonts.THEME_COLOR_CATEGORY_GRADIENT_END);
-
- gc.setForeground(gradientStart);
- gc.setBackground(gradientEnd);
- gc.fillGradientRectangle(0, rect.y, area.width, rect.height, true);
-
- /* Bottom Line */
- gc.setForeground(gradientEnd);
- gc.drawLine(0, rect.y + rect.height - 1, area.width, rect.y + rect.height - 1);
-
- gc.setForeground(oldForeground);
- gc.setBackground(oldBackground);
-
- /* Mark as Background being handled */
- event.detail &= ~SWT.BACKGROUND;
- }
- }
- });
+ updateGradientColors();
initDragAndDrop(parent);
expandToActiveTasks();
@@ -923,7 +939,6 @@ public class TaskListView extends ViewPart {
return currentPresentation;
}
-
private void configureColumns(final String[] columnNames, final int[] columnWidths) {
getViewer().setColumnProperties(columnNames);
// for (TreeColumn col: columns) {

Back to the top