diff options
author | mkersten | 2007-03-22 00:47:40 +0000 |
---|---|---|
committer | mkersten | 2007-03-22 00:47:40 +0000 |
commit | 3bf6eb665e9f85c26b27b316ee80af9e8043d310 (patch) | |
tree | ed5fc505d7eca00d856aec9203376e4bcc29e25d /org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java | |
parent | 2bd5d2f3883111336a5b1d97ac08bbabe32e675f (diff) | |
download | org.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.java | 107 |
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) { |