diff options
author | mkersten | 2007-05-14 23:17:33 +0000 |
---|---|---|
committer | mkersten | 2007-05-14 23:17:33 +0000 |
commit | fa2ce1534ebc3def7c663b4f1fffbb5d28c03f12 (patch) | |
tree | 0c68613959c829498962973c09ff7618619a9a41 | |
parent | 5fe7bc526ac7e2fb994e98526c485301458d5d03 (diff) | |
download | org.eclipse.mylyn.tasks-fa2ce1534ebc3def7c663b4f1fffbb5d28c03f12.tar.gz org.eclipse.mylyn.tasks-fa2ce1534ebc3def7c663b4f1fffbb5d28c03f12.tar.xz org.eclipse.mylyn.tasks-fa2ce1534ebc3def7c663b4f1fffbb5d28c03f12.zip |
REOPENED - bug 182772: improve Task List table/tree layout
https://bugs.eclipse.org/bugs/show_bug.cgi?id=182772
10 files changed, 60 insertions, 69 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming-new.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming-new.gif Binary files differnew file mode 100644 index 000000000..a9dc04ed4 --- /dev/null +++ b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming-new.gif diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming.gif Binary files differnew file mode 100644 index 000000000..ab5483dd1 --- /dev/null +++ b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-incoming.gif diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-outgoing.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-outgoing.gif Binary files differnew file mode 100644 index 000000000..5f1c76ade --- /dev/null +++ b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-synch-outgoing.gif diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeContainerImageDescriptor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeContainerImageDescriptor.java index f99779b67..2a772d8a5 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeContainerImageDescriptor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeContainerImageDescriptor.java @@ -39,7 +39,7 @@ public class CompositeContainerImageDescriptor extends CompositeImageDescriptor protected void drawCompositeImage(int width, int height) { drawImage(base, 0, 0); if (overlay != null) { - drawImage(overlay, base.width+2, CompositeTaskImageDescriptor.OFFSET_SYNCH); + drawImage(overlay, base.width+2, 0); } } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeTaskImageDescriptor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeTaskImageDescriptor.java index 7696c56f5..214e5888e 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeTaskImageDescriptor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CompositeTaskImageDescriptor.java @@ -23,31 +23,18 @@ public class CompositeTaskImageDescriptor extends CompositeImageDescriptor { private ImageData base; - private ImageData synchState; - private ImageData kind; protected Point size; - public static final int WIDTH_DECORATION = 5; - -// private static final int WIDTH_SYNCH = 9;//5; - - private static final int WIDTH_SQUISH = 0; + public static final int WIDTH_DECORATION = 6; private static final int WIDTH_ICON = 16; - - static final int OFFSET_SYNCH = 5; static int WIDTH; static { -// if (SWT.getPlatform().equals("win32")) { -// WIDTH_DECORATION = 0; -// } else { -// WIDTH_DECORATION = 4; -// } - WIDTH = WIDTH_DECORATION + WIDTH_ICON - WIDTH_SQUISH; + WIDTH = WIDTH_DECORATION + WIDTH_ICON; } public CompositeTaskImageDescriptor(ImageDescriptor icon, ImageDescriptor overlayKind) { @@ -55,9 +42,6 @@ public class CompositeTaskImageDescriptor extends CompositeImageDescriptor { if (overlayKind != null) { this.kind = getImageData(overlayKind); } -// if (synchState != null) { -// this.synchState = getImageData(synchState); -// } this.size = new Point(WIDTH, base.height); } @@ -67,9 +51,6 @@ public class CompositeTaskImageDescriptor extends CompositeImageDescriptor { if (kind != null) { drawImage(kind, WIDTH_DECORATION+5, 6); } - if (synchState != null) { - drawImage(synchState, WIDTH_ICON /*WIDTH_SQUISH + 1*/, OFFSET_SYNCH); - } } private ImageData getImageData(ImageDescriptor descriptor) { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiImages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiImages.java index 51938384a..3d9949e33 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiImages.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiImages.java @@ -145,6 +145,12 @@ public class TasksUiImages { public static final ImageDescriptor OVERLAY_OUTGOING = create(T_EVIEW, "overlay-outgoing.gif"); + public static final ImageDescriptor OVERLAY_SYNCH_INCOMMING = create(T_EVIEW, "overlay-synch-incoming.gif"); + + public static final ImageDescriptor OVERLAY_SYNCH_INCOMMING_NEW = create(T_EVIEW, "overlay-synch-incoming-new.gif"); + + public static final ImageDescriptor OVERLAY_SYNCH_OUTGOING = create(T_EVIEW, "overlay-synch-outgoing.gif"); + public static final ImageDescriptor OVERLAY_CONFLICT = create(T_EVIEW, "overlay-conflicting.gif"); public static final ImageDescriptor OVERLAY_REPOSITORY = create(T_EVIEW, "overlay-repository.gif"); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksPreferencePage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksPreferencePage.java index 5b11d2321..e5b93d218 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksPreferencePage.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksPreferencePage.java @@ -443,7 +443,7 @@ public class TasksPreferencePage extends PreferencePage implements IWorkbenchPre group.setLayout(new GridLayout(1, false)); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); incomingOverlaysButton = new Button(group, SWT.CHECK); - incomingOverlaysButton.setText("Overlay synchronization state on task icons (for wide view)"); + incomingOverlaysButton.setText("Use Synchronize View style incoming overlays and placement"); incomingOverlaysButton.setSelection(getPreferenceStore().getBoolean( TaskListPreferenceConstants.INCOMING_OVERLAID)); } 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 634ad9ad2..640bef3a9 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 @@ -105,27 +105,29 @@ class CustomTaskListDecorationDrawer implements Listener { Image image = null; int offsetX = 6; int offsetY = (event.height / 2) - 5; - if (this.taskListView.synchronizationOverlaid) { - offsetX = event.x + 3; + if (taskListView.synchronizationOverlaid) { + offsetX = event.x + 19; + offsetY += 2; } if (element instanceof AbstractTaskContainer) { if (element instanceof AbstractTaskContainer) { if (!Arrays.asList(this.taskListView.getViewer().getExpandedElements()).contains(element) && hasIncoming((AbstractTaskContainer) element)) { - image = TasksUiImages.getImage(TasksUiImages.STATUS_NORMAL_INCOMING); - offsetX = 24; + if (taskListView.synchronizationOverlaid) { + image = TasksUiImages.getImage(TasksUiImages.OVERLAY_SYNCH_INCOMMING); + offsetX = 42; + } else { + image = TasksUiImages.getImage(TasksUiImages.STATUS_NORMAL_INCOMING); + offsetX = 24; + } } } } else { - image = TasksUiImages.getImage(TaskElementLabelProvider.getSynchronizationImageDescriptor(element)); -// image = TasksUiImages.getCompositeSynchImage(TaskElementLabelProvider -// .getSynchronizationImageDescriptor(element), true); + image = TasksUiImages.getImage(TaskElementLabelProvider.getSynchronizationImageDescriptor(element, taskListView.synchronizationOverlaid)); } if (image != null) { event.gc.drawImage(image, offsetX, event.y + offsetY); -// event.gc.drawImage(image, currWidth - 16, event.y + 1); } -// } } private boolean hasIncoming(AbstractTaskContainer container) { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java index 54282b8c5..ec75d68b7 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java @@ -78,19 +78,14 @@ public class TaskElementLabelProvider extends LabelProvider implements IColorPro @Override public Image getImage(Object element) { CompositeImageDescriptor compositeDescriptor = getImageDescriptor(element, compositeImages); -// if (!compositeImages) { -// return TasksUiImages.getCompositeImage(compositeDescriptor.icon); -// } else { - if (element instanceof ITask || element instanceof AbstractQueryHit) { - return TasksUiImages.getCompositeTaskImage(compositeDescriptor.icon, compositeDescriptor.overlayKind, - compositeDescriptor.overlaySynch); - } else if (element instanceof AbstractTaskContainer) { - return TasksUiImages.getCompositeContainerImage(compositeDescriptor.icon, - compositeDescriptor.overlaySynch); - } else { - return TasksUiImages.getCompositeTaskImage(compositeDescriptor.icon, null, null); - } -// } + if (element instanceof ITask || element instanceof AbstractQueryHit) { + return TasksUiImages.getCompositeTaskImage(compositeDescriptor.icon, compositeDescriptor.overlayKind, + compositeDescriptor.overlaySynch); + } else if (element instanceof AbstractTaskContainer) { + return TasksUiImages.getCompositeContainerImage(compositeDescriptor.icon, compositeDescriptor.overlaySynch); + } else { + return TasksUiImages.getCompositeTaskImage(compositeDescriptor.icon, null, null); + } } private CompositeImageDescriptor getImageDescriptor(Object object, boolean showSynchState) { @@ -113,7 +108,7 @@ public class TaskElementLabelProvider extends LabelProvider implements IColorPro compositeDescriptor.overlayKind = connectorUi.getTaskKindOverlay(repositoryTask); } if (showSynchState) { - compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element); + compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element, false); } } else if (element instanceof AbstractQueryHit) { AbstractRepositoryTask repositoryTask = ((AbstractQueryHit) element).getCorrespondingTask(); @@ -124,24 +119,17 @@ public class TaskElementLabelProvider extends LabelProvider implements IColorPro connectorUi = TasksUiPlugin.getRepositoryUi(((AbstractRepositoryQuery) element).getRepositoryKind()); } -// if (element instanceof AbstractTaskContainer) { -// if (treeViewer != null && !Arrays.asList(treeViewer.getExpandedElements()).contains(element) -// && hasIncoming((AbstractTaskContainer) element)) { -// compositeDescriptor.overlaySynch = TasksUiImages.STATUS_NORMAL_INCOMING; -// } -// } - if (connectorUi != null) { compositeDescriptor.icon = connectorUi.getTaskListElementIcon(element); return compositeDescriptor; } else { if (element instanceof ITask) { if (showSynchState) { - compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element); + compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element, false); } } else if (element instanceof AbstractQueryHit) { if (showSynchState) { - compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element); + compositeDescriptor.overlaySynch = getSynchronizationImageDescriptor(element, false); } } @@ -160,22 +148,34 @@ public class TaskElementLabelProvider extends LabelProvider implements IColorPro return compositeDescriptor; } - public static ImageDescriptor getSynchronizationImageDescriptor(Object element) { + public static ImageDescriptor getSynchronizationImageDescriptor(Object element, boolean synchViewStyle) { AbstractRepositoryTask repositoryTask = null; ImageDescriptor imageDescriptor = null; if (element instanceof AbstractQueryHit) { repositoryTask = ((AbstractQueryHit) element).getCorrespondingTask(); if (repositoryTask == null) { - return TasksUiImages.STATUS_OVERLAY_INCOMMING_NEW; + if (synchViewStyle) { + return TasksUiImages.OVERLAY_SYNCH_INCOMMING_NEW; + } else { + return TasksUiImages.STATUS_OVERLAY_INCOMMING_NEW; + } } } else if (element instanceof AbstractRepositoryTask) { repositoryTask = (AbstractRepositoryTask) element; } if (repositoryTask != null) { if (repositoryTask.getSyncState() == RepositoryTaskSyncState.OUTGOING) { - imageDescriptor = TasksUiImages.STATUS_NORMAL_OUTGOING; + if (synchViewStyle) { + imageDescriptor = TasksUiImages.OVERLAY_SYNCH_OUTGOING; + } else { + imageDescriptor = TasksUiImages.STATUS_NORMAL_OUTGOING; + } } else if (repositoryTask.getSyncState() == RepositoryTaskSyncState.INCOMING) { - imageDescriptor = TasksUiImages.STATUS_NORMAL_INCOMING; + if (synchViewStyle) { + imageDescriptor = TasksUiImages.OVERLAY_SYNCH_INCOMMING; + } else { + imageDescriptor = TasksUiImages.STATUS_NORMAL_INCOMING; + } } else if (repositoryTask.getSyncState() == RepositoryTaskSyncState.CONFLICT) { imageDescriptor = TasksUiImages.STATUS_NORMAL_CONFLICT; } @@ -185,7 +185,11 @@ public class TaskElementLabelProvider extends LabelProvider implements IColorPro return imageDescriptor; } } else if (element instanceof AbstractQueryHit) { - return TasksUiImages.STATUS_NORMAL_INCOMING; + if (synchViewStyle) { + return TasksUiImages.OVERLAY_SYNCH_INCOMMING; + } else { + return TasksUiImages.STATUS_NORMAL_INCOMING; + } } else if (element instanceof AbstractTaskContainer) { AbstractTaskContainer container = (AbstractTaskContainer) element; if (container instanceof AbstractRepositoryQuery) { @@ -211,16 +215,15 @@ public class TaskElementLabelProvider extends LabelProvider implements IColorPro if (element instanceof ITask || element instanceof AbstractQueryHit) { ITask task = TaskElementLabelProvider.getCorrespondingTask((ITaskListElement) element); if (task != null) { - return TasksUiImages.getImageDescriptorForPriority(PriorityLevel.fromString(task - .getPriority())); - } else if (element instanceof AbstractQueryHit){ - return TasksUiImages.getImageDescriptorForPriority(PriorityLevel.fromString(((AbstractQueryHit)element) - .getPriority())); + return TasksUiImages.getImageDescriptorForPriority(PriorityLevel.fromString(task.getPriority())); + } else if (element instanceof AbstractQueryHit) { + return TasksUiImages.getImageDescriptorForPriority(PriorityLevel + .fromString(((AbstractQueryHit) element).getPriority())); } } return null; } - + @Override public String getText(Object object) { if (object instanceof AbstractQueryHit) { @@ -336,8 +339,6 @@ public class TaskElementLabelProvider extends LabelProvider implements IColorPro } else if (element instanceof AbstractQueryHit) { return getBackground(((AbstractQueryHit) element).getCorrespondingTask()); } - // return - // Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND); return null; } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTipHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTipHandler.java index 2fdf8649d..1b04e6884 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTipHandler.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTipHandler.java @@ -447,7 +447,7 @@ public class TaskListToolTipHandler { @Override public void mouseHover(MouseEvent event) { - if (tipShell.isDisposed()) { + if (tipShell.isDisposed() || incommingTipLabelText.isDisposed()) { return; } widgetPosition = new Point(event.x, event.y); @@ -529,6 +529,7 @@ public class TaskListToolTipHandler { Rectangle shellBounds = shell.getBounds(); // We need to find the exact monitor we're mousing over + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=166990 Monitor[] array = PlatformUI.getWorkbench().getDisplay().getMonitors(); for (Monitor m : array) { Rectangle monitorBounds = m.getBounds(); |