Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java187
1 files changed, 0 insertions, 187 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java
deleted file mode 100644
index 15d99876e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies 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:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.notifications;
-
-import java.text.MessageFormat;
-import java.util.List;
-
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Drawable;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskDiffUtil {
-
- private static final String ELLIPSIS = "..."; //$NON-NLS-1$ // could use the ellipsis glyph on some platforms "\u2026"
-
- private static int DRAW_FLAGS = SWT.DRAW_MNEMONIC | SWT.DRAW_TAB | SWT.DRAW_TRANSPARENT | SWT.DRAW_DELIMITER;
-
- public static String commentToString(ITaskComment comment) {
- StringBuilder sb = new StringBuilder();
- sb.append(MessageFormat.format(Messages.TaskDiffUtil_Comment_by_X, personToString(comment.getAuthor())));
- sb.append(": "); //$NON-NLS-1$
- sb.append(cleanCommentText(comment.getText()));
- return sb.toString();
- }
-
- private static String personToString(IRepositoryPerson author) {
- if (author == null) {
- return Messages.TaskDiffUtil_Unknown;
- } else if (author.getName() != null) {
- return author.getName();
- }
- return author.getPersonId();
- }
-
- public static String cleanCommentText(String value) {
- String text = ""; //$NON-NLS-1$
- String[] lines = value.split("\n"); //$NON-NLS-1$
- boolean attachment = false;
- boolean needSeparator = false;
- for (String line : lines) {
- // skip comments and info lines
- if (attachment) {
- text += Messages.TaskDiffUtil_attachment + line;
- needSeparator = true;
- attachment = false;
- } else if (line.startsWith(">") // //$NON-NLS-1$
- || line.matches("^\\s*\\(In reply to comment.*")) { //$NON-NLS-1$
- needSeparator = true;
- continue;
- } else if (line.startsWith("Created an attachment (id=")) { //$NON-NLS-1$
- attachment = true;
- } else {
- if (needSeparator) {
- if (!text.matches(".*\\p{Punct}\\s*")) { //$NON-NLS-1$
- text = text.trim();
- if (text.length() > 0) {
- text += "."; //$NON-NLS-1$
- }
- }
- }
- text += " " + line; //$NON-NLS-1$
- attachment = false;
- needSeparator = false;
- }
- }
- return foldSpaces(text);
- }
-
- public static String listToString(List<String> values) {
- if (values == null) {
- return ""; //$NON-NLS-1$
- }
-
- StringBuilder sb = new StringBuilder();
- boolean first = true;
- for (String value : values) {
- if (!first) {
- sb.append(", "); //$NON-NLS-1$
- } else {
- first = false;
- }
- sb.append(foldSpaces(value));
- }
- return sb.toString();
- }
-
- public static String foldSpaces(String value) {
- return value.replaceAll("\\s+", " ").trim(); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public static String trim(String value, int length) {
- if (value.length() > length) {
- value = value.substring(0, length - 3) + "..."; //$NON-NLS-1$
- }
- return value;
- }
-
- /**
- * Note: Copied from CLabel.
- *
- * Shorten the given text <code>t</code> so that its length doesn't exceed the given width. The default
- * implementation replaces characters in the center of the original string with an ellipsis ("..."). Override if you
- * need a different strategy.
- *
- * @param gc
- * the gc to use for text measurement
- * @param t
- * the text to shorten
- * @param width
- * the width to shorten the text to, in pixels
- * @return the shortened text
- */
- public static final String shortenText2(Composite composite, String t, int width) {
- GC gc = new GC(composite);
-
- if (t == null) {
- return null;
- }
- int w = gc.textExtent(ELLIPSIS, DRAW_FLAGS).x;
- if (width <= w) {
- return t;
- }
- int l = t.length();
- int max = l / 2;
- int min = 0;
- int mid = (max + min) / 2 - 1;
- if (mid <= 0) {
- return t;
- }
- while (min < mid && mid < max) {
- String s1 = t.substring(0, mid);
- String s2 = t.substring(l - mid, l);
- int l1 = gc.textExtent(s1, DRAW_FLAGS).x;
- int l2 = gc.textExtent(s2, DRAW_FLAGS).x;
- if (l1 + w + l2 > width) {
- max = mid;
- mid = (max + min) / 2;
- } else if (l1 + w + l2 < width) {
- min = mid;
- mid = (max + min) / 2;
- } else {
- min = max;
- }
- }
-
- gc.dispose();
-
- if (mid == 0) {
- return t;
- }
- return t.substring(0, mid) + ELLIPSIS + t.substring(l - mid, l);
- }
-
- // From PerspectiveBarContributionItem
- public static String shortenText(Drawable composite, String text, int maxWidth) {
- String returnText = text;
- GC gc = new GC(composite);
- if (gc.textExtent(text).x > maxWidth) {
- for (int i = text.length(); i > 0; i--) {
- String subString = text.substring(0, i);
- subString = subString + "..."; //$NON-NLS-1$
- if (gc.textExtent(subString).x < maxWidth) {
- returnText = subString;
- break;
- }
- }
- }
- gc.dispose();
- return returnText;
- }
-
-}

Back to the top