### Eclipse Workspace Patch 1.0
#P org.eclipse.mylyn.tasks.ui
Index: src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java,v
retrieving revision 1.255
diff -u -r1.255 AbstractRepositoryTaskEditor.java
--- src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java 7 Jan 2008 17:18:23 -0000 1.255
+++ src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java 9 Jan 2008 19:23:18 -0000
@@ -73,6 +73,7 @@
import org.eclipse.mylyn.internal.tasks.ui.PersonProposalLabelProvider;
import org.eclipse.mylyn.internal.tasks.ui.PersonProposalProvider;
import org.eclipse.mylyn.internal.tasks.ui.TaskListColorsAndFonts;
+import org.eclipse.mylyn.internal.tasks.ui.TaskListHyperlink;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages;
import org.eclipse.mylyn.internal.tasks.ui.actions.AbstractTaskEditorAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.AttachAction;
@@ -3756,4 +3757,31 @@
form.reflow(true);
}
}
+
+ /**
+ * @since 2.3
+ */
+ protected Hyperlink createTaskLinkHyperlink(Composite hyperlinksComposite, final String taskId, final String taskUrl,
+ final AbstractTask task) {
+ TaskListHyperlink hyperlink = new TaskListHyperlink(hyperlinksComposite, SWT.SHORT
+ | getManagedForm().getToolkit().getOrientation());
+ getManagedForm().getToolkit().adapt(hyperlink, true, true);
+ getManagedForm().getToolkit().getHyperlinkGroup().add(hyperlink);
+ hyperlink.setTask(task);
+ if (task == null) {
+ hyperlink.setText(taskId);
+ }
+ hyperlink.addHyperlinkListener(new HyperlinkAdapter() {
+ @Override
+ public void linkActivated(HyperlinkEvent e) {
+ if (task != null) {
+ TasksUiUtil.refreshAndOpenTaskListElement(task);
+ } else {
+ TasksUiUtil.openRepositoryTask(repository.getUrl(), taskId, taskUrl);
+ }
+ }
+ });
+ return hyperlink;
+ }
+
}
Index: src/org/eclipse/mylyn/internal/tasks/ui/TaskListHyperlink.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListHyperlink.java,v
retrieving revision 1.5
diff -u -r1.5 TaskListHyperlink.java
--- src/org/eclipse/mylyn/internal/tasks/ui/TaskListHyperlink.java 6 Dec 2007 02:04:27 -0000 1.5
+++ src/org/eclipse/mylyn/internal/tasks/ui/TaskListHyperlink.java 9 Jan 2008 19:23:17 -0000
@@ -9,22 +9,28 @@
package org.eclipse.mylyn.internal.tasks.ui;
import org.eclipse.mylyn.tasks.core.AbstractTask;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseTrackListener;
import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.widgets.ImageHyperlink;
/**
- * Override Hyperlink to truncate its text at the end, rather than the middle.
+ * Enhanced Hyperlink
for rendering tasks that truncates its text at the end rather than the middle if it
+ * is wider than the available space.
*
* @author Leo Dos Santos
* @author Mik Kersten
+ * @author Steffen Pingel
+ * @author Frank Becker
*/
public class TaskListHyperlink extends ImageHyperlink {
- private final MouseTrackListener MOUSE_TRACK_LISTENER = new MouseTrackListener() {
-
+ private final MouseTrackListener MOUSE_TRACK_LISTENER = new MouseTrackListener() {
+
public void mouseEnter(MouseEvent e) {
setUnderlined(true);
}
@@ -37,6 +43,8 @@
}
};
+ private boolean strikeThrough;
+
private AbstractTask task;
public TaskListHyperlink(Composite parent, int style) {
@@ -44,19 +52,68 @@
setForeground(TaskListColorsAndFonts.COLOR_HYPERLINK_WIDGET);
addMouseTrackListener(MOUSE_TRACK_LISTENER);
}
-
+
@Override
public void dispose() {
removeMouseTrackListener(MOUSE_TRACK_LISTENER);
super.dispose();
}
+ public AbstractTask getTask() {
+ return task;
+ }
+
+ public boolean isStrikeThrough() {
+ return strikeThrough;
+ }
+
+ @Override
+ protected void paintText(GC gc, Rectangle bounds) {
+ super.paintText(gc, bounds);
+ if (strikeThrough) {
+ Point totalSize = computeTextSize(SWT.DEFAULT, SWT.DEFAULT);
+ int textWidth = Math.min(bounds.width, totalSize.x);
+ int textHeight = totalSize.y;
+
+ // int descent = gc.getFontMetrics().getDescent();
+ int lineY = bounds.y + (textHeight / 2); // - descent + 1;
+ gc.drawLine(bounds.x, lineY, bounds.x + textWidth, lineY);
+ }
+ }
+
+ public void setStrikeThrough(boolean strikethrough) {
+ this.strikeThrough = strikethrough;
+ }
+
+ public void setTask(AbstractTask task) {
+ this.task = task;
+ if (task != null) {
+ if ((getStyle() & SWT.SHORT) != 0) {
+ setText(task.getTaskKey());
+ setToolTipText(task.getTaskKey() + ": " + task.getSummary());
+ setStrikeThrough(task.isCompleted());
+ } else {
+ setText(task.getSummary());
+ setToolTipText(null);
+ setStrikeThrough(false);
+ }
+ } else {
+ setText("");
+ setToolTipText(null);
+ setStrikeThrough(false);
+ }
+ }
+
@Override
protected String shortenText(GC gc, String t, int width) {
if (t == null) {
return null;
}
+ if ((getStyle() & SWT.SHORT) != 0) {
+ return t;
+ }
+
String returnText = t;
if (gc.textExtent(t).x > width) {
for (int i = t.length(); i > 0; i--) {
@@ -71,12 +128,4 @@
return returnText;
}
- public AbstractTask getTask() {
- return task;
- }
-
- public void setTask(AbstractTask task) {
- this.task = task;
- }
-
}
Index: src/org/eclipse/mylyn/internal/tasks/ui/TaskListImageHyperlink.java
===================================================================
RCS file: src/org/eclipse/mylyn/internal/tasks/ui/TaskListImageHyperlink.java
diff -N src/org/eclipse/mylyn/internal/tasks/ui/TaskListImageHyperlink.java
--- src/org/eclipse/mylyn/internal/tasks/ui/TaskListImageHyperlink.java 10 Jul 2007 00:30:39 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Mylyn project committers 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
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-
-/**
- * Override ImageHyperlink to truncate its text at the end, rather than the middle.
- *
- * @author Leo Dos Santos
- */
-public class TaskListImageHyperlink extends ImageHyperlink {
-
- public TaskListImageHyperlink(Composite parent, int style) {
- super(parent, style);
- }
-
- // From PerspectiveBarContributionItem
- @Override
- protected String shortenText(GC gc, String t, int width) {
- if (t == null) {
- return null;
- }
-
- String returnText = t;
- if (gc.textExtent(t).x > width) {
- for (int i = t.length(); i > 0; i--) {
- String test = t.substring(0, i);
- test = test + "...";
- if (gc.textExtent(test).x < width) {
- returnText = test;
- break;
- }
- }
- }
- return returnText;
- }
-
-}
Index: .refactorings/2008/1/2/refactorings.history
===================================================================
RCS file: .refactorings/2008/1/2/refactorings.history
diff -N .refactorings/2008/1/2/refactorings.history
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ .refactorings/2008/1/2/refactorings.history 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,3 @@
+
+
+
Index: .refactorings/2008/1/2/refactorings.index
===================================================================
RCS file: .refactorings/2008/1/2/refactorings.index
diff -N .refactorings/2008/1/2/refactorings.index
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ .refactorings/2008/1/2/refactorings.index 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+1199904661806 Delete element
+1199906043421 Rename field 'strikethrough'
#P org.eclipse.mylyn.bugzilla.ui
Index: src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditor.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditor.java,v
retrieving revision 1.83
diff -u -r1.83 BugzillaTaskEditor.java
--- src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditor.java 21 Nov 2007 22:14:56 -0000 1.83
+++ src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditor.java 9 Jan 2008 19:23:19 -0000
@@ -242,24 +242,10 @@
if (values != null && values.length() > 0) {
for (String bugNumber : values.split(",")) {
final String bugId = bugNumber.trim();
- Hyperlink hyperlink = getManagedForm().getToolkit().createHyperlink(hyperlinksComposite, bugId,
- SWT.NONE);
+ final String bugUrl = repository.getUrl() + IBugzillaConstants.URL_GET_SHOW_BUG + bugId;
final AbstractTask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(repository.getUrl(),
bugId);
- if (task != null) {
- hyperlink.setToolTipText(task.getSummary());
- }
- hyperlink.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- if (task != null) {
- TasksUiUtil.refreshAndOpenTaskListElement(task);
- } else {
- TasksUiUtil.openRepositoryTask(repository.getUrl(), bugId, repository.getUrl()
- + IBugzillaConstants.URL_GET_SHOW_BUG + bugId);
- }
- }
- });
+ createTaskLinkHyperlink(hyperlinksComposite, bugId, bugUrl, task);
}
}
}
Index: .refactorings/2008/1/2/refactorings.history
===================================================================
RCS file: .refactorings/2008/1/2/refactorings.history
diff -N .refactorings/2008/1/2/refactorings.history
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ .refactorings/2008/1/2/refactorings.history 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,4 @@
+
+
+
+
Index: .refactorings/2008/1/2/refactorings.index
===================================================================
RCS file: .refactorings/2008/1/2/refactorings.index
diff -N .refactorings/2008/1/2/refactorings.index
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ .refactorings/2008/1/2/refactorings.index 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+1199906292897 Extract method 'createTaskLinkHyperlink'