diff options
author | spingel | 2009-06-22 00:44:18 +0000 |
---|---|---|
committer | spingel | 2009-06-22 00:44:18 +0000 |
commit | c054e03980f51e33a7d18f1036284135928aeacb (patch) | |
tree | acc49b8a9c431cefaf69c508d63d7ee9d6d7a9ae | |
parent | d5add940dad1d32d591bd19c3b8ca3dc081e6aee (diff) | |
download | org.eclipse.mylyn.tasks-c054e03980f51e33a7d18f1036284135928aeacb.tar.gz org.eclipse.mylyn.tasks-c054e03980f51e33a7d18f1036284135928aeacb.tar.xz org.eclipse.mylyn.tasks-c054e03980f51e33a7d18f1036284135928aeacb.zip |
NEW - bug 260280: Environment attribute in task editor should have http and https hyperlink detector
https://bugs.eclipse.org/bugs/show_bug.cgi?id=260280
3 files changed, 19 insertions, 12 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractHyperlinkTextPresentationManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractHyperlinkTextPresentationManager.java index 4820603db..f5a073209 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractHyperlinkTextPresentationManager.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractHyperlinkTextPresentationManager.java @@ -18,11 +18,11 @@ import java.util.List; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.ITextPresentationListener; +import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.ITextViewerExtension4; import org.eclipse.jface.text.TextPresentation; import org.eclipse.jface.text.hyperlink.IHyperlink; import org.eclipse.jface.text.hyperlink.IHyperlinkDetector; -import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.mylyn.tasks.ui.IHighlightingHyperlink; import org.eclipse.mylyn.tasks.ui.TaskHyperlink; import org.eclipse.swt.custom.StyleRange; @@ -69,7 +69,7 @@ public abstract class AbstractHyperlinkTextPresentationManager { private final ITextPresentationListener textPresentationListener = new Support(); - private ISourceViewer viewer; + private ITextViewer viewer; public AbstractHyperlinkTextPresentationManager() { } @@ -146,9 +146,11 @@ public abstract class AbstractHyperlinkTextPresentationManager { return regions; } - public void install(ISourceViewer viewer) { + public void install(ITextViewer viewer) { this.viewer = viewer; - ((ITextViewerExtension4) viewer).addTextPresentationListener(textPresentationListener); + if (viewer instanceof ITextViewerExtension4) { + ((ITextViewerExtension4) viewer).addTextPresentationListener(textPresentationListener); + } } public boolean select(IHyperlink hyperlink) { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/LongTextAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/LongTextAttributeEditor.java index 2f2d685b5..43ba284d7 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/LongTextAttributeEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/LongTextAttributeEditor.java @@ -12,9 +12,10 @@ package org.eclipse.mylyn.internal.tasks.ui.editors; import org.eclipse.jface.text.Document; -import org.eclipse.jface.text.TextViewer; +import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil; import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport; +import org.eclipse.mylyn.internal.tasks.ui.editors.RepositoryTextViewerConfiguration.Mode; import org.eclipse.mylyn.tasks.core.data.TaskAttribute; import org.eclipse.mylyn.tasks.core.data.TaskDataModel; import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor; @@ -44,9 +45,11 @@ public class LongTextAttributeEditor extends AbstractAttributeEditor { if (!isReadOnly()) { style |= SWT.V_SCROLL; } - TextViewer viewer = new TextViewer(parent, style); + SourceViewer viewer = new SourceViewer(parent, null, style); + RepositoryTextViewerConfiguration configuration = RichTextEditor.installHyperlinkPresenter(viewer, + getModel().getTaskRepository(), Mode.DEFAULT); + viewer.configure(configuration); viewer.setDocument(new Document(getValue())); - final StyledText text = viewer.getTextWidget(); toolkit.adapt(text, false, false); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextEditor.java index c59bc764f..e01839003 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextEditor.java @@ -25,6 +25,7 @@ import org.eclipse.jface.text.ITextListener; import org.eclipse.jface.text.TextEvent; import org.eclipse.jface.text.source.AnnotationModel; import org.eclipse.jface.text.source.IAnnotationAccess; +import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil; import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport; @@ -150,7 +151,7 @@ public class RichTextEditor { private SourceViewer configure(final SourceViewer viewer, Document document, boolean readOnly) { // do this before setting the document to not require invalidating the presentation - installHyperlinkPresenter(viewer); + installHyperlinkPresenter(viewer, repository, getMode()); if (readOnly) { viewer.setDocument(document); @@ -382,14 +383,15 @@ public class RichTextEditor { return extension != null && !isReadOnly(); } - private RepositoryTextViewerConfiguration installHyperlinkPresenter(SourceViewer viewer) { + public static RepositoryTextViewerConfiguration installHyperlinkPresenter(ISourceViewer viewer, + TaskRepository repository, Mode mode) { RepositoryTextViewerConfiguration configuration = new RepositoryTextViewerConfiguration(repository, false); - configuration.setMode(getMode()); + configuration.setMode(mode); // do not configure viewer, this has already been done in extension AbstractHyperlinkTextPresentationManager manager; - if (getMode() == Mode.DEFAULT) { + if (mode == Mode.DEFAULT) { manager = new HighlightingHyperlinkTextPresentationManager(); manager.setHyperlinkDetectors(configuration.getDefaultHyperlinkDetectors(viewer, null)); manager.install(viewer); @@ -397,7 +399,7 @@ public class RichTextEditor { manager = new TaskHyperlinkTextPresentationManager(); manager.setHyperlinkDetectors(configuration.getDefaultHyperlinkDetectors(viewer, Mode.TASK)); manager.install(viewer); - } else if (getMode() == Mode.TASK_RELATION) { + } else if (mode == Mode.TASK_RELATION) { manager = new TaskHyperlinkTextPresentationManager(); manager.setHyperlinkDetectors(configuration.getDefaultHyperlinkDetectors(viewer, Mode.TASK_RELATION)); manager.install(viewer); |