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/editors/TaskRelationHyperlinkDetector.java')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskRelationHyperlinkDetector.java128
1 files changed, 0 insertions, 128 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskRelationHyperlinkDetector.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskRelationHyperlinkDetector.java
deleted file mode 100644
index ee5ca57b8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskRelationHyperlinkDetector.java
+++ /dev/null
@@ -1,128 +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.editors;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskHyperlinkDetector;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlink;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskRelationHyperlinkDetector extends AbstractTaskHyperlinkDetector {
-
- private static Pattern HYPERLINK_PATTERN = Pattern.compile("([^\\s,]+)"); //$NON-NLS-1$
-
- @Override
- public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
- if (region.getLength() > 0) {
- return super.detectHyperlinks(textViewer, region, canShowMultipleHyperlinks);
- } else {
- if (textViewer.getDocument() == null) {
- return null;
- }
-
- TaskRepository taskRepository = getTaskRepository(textViewer);
- if (taskRepository != null) {
- String prefix = extractPrefix(textViewer, region.getOffset());
- String postfix = extractPostfix(textViewer, region.getOffset());
- String taskKey = prefix + postfix;
- if (taskKey.length() > 0) {
- Region hyperlinkRegion = new Region(region.getOffset() - prefix.length(), taskKey.length());
- return new IHyperlink[] { new TaskHyperlink(hyperlinkRegion, taskRepository, taskKey) };
- }
- }
- }
- return null;
- }
-
- @Override
- protected List<IHyperlink> detectHyperlinks(ITextViewer textViewer, String content, int index, int contentOffset) {
- List<IHyperlink> links = null;
- for (TaskRepository repository : getTaskRepositories(textViewer)) {
- Matcher m = HYPERLINK_PATTERN.matcher(content);
- while (m.find()) {
- if (links == null) {
- links = new ArrayList<IHyperlink>();
- }
- Region region = new Region(contentOffset + m.start(), m.end() - m.start());
- links.add(new TaskHyperlink(region, repository, m.group()));
- }
- }
- return links;
- }
-
- private String extractPrefix(ITextViewer viewer, int offset) {
- int i = offset;
- IDocument document = viewer.getDocument();
- if (i > document.getLength()) {
- return ""; //$NON-NLS-1$
- }
-
- try {
- if (isSeparator(document.getChar(i))) {
- return ""; //$NON-NLS-1$
- }
- while (i > 0) {
- char ch = document.getChar(i - 1);
- if (isSeparator(ch)) {
- break;
- }
- i--;
- }
- return document.get(i, offset - i);
- } catch (BadLocationException e) {
- return ""; //$NON-NLS-1$
- }
- }
-
- private String extractPostfix(ITextViewer viewer, int offset) {
- int i = offset;
- IDocument document = viewer.getDocument();
- int length = document.getLength();
- if (i > length) {
- return ""; //$NON-NLS-1$
- }
-
- try {
- if (isSeparator(document.getChar(i))) {
- return ""; //$NON-NLS-1$
- }
- while (i < length - 1) {
- char ch = document.getChar(i + 1);
- if (isSeparator(ch)) {
- break;
- }
- i++;
- }
- return document.get(offset, i - offset + 1);
- } catch (BadLocationException e) {
- }
- return ""; //$NON-NLS-1$
- }
-
- private boolean isSeparator(char ch) {
- return Character.isWhitespace(ch) || ch == ',';
- }
-
-}

Back to the top