Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 90296 Details for
Bug 167941
resolved bugs hyperlinks in comments should appear in a strikethrought font
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
non working patch
clipboard.txt (text/plain), 10.26 KB, created by
Steffen Pingel
on 2008-02-21 02:05:20 EST
(
hide
)
Description:
non working patch
Filename:
MIME Type:
Creator:
Steffen Pingel
Created:
2008-02-21 02:05:20 EST
Size:
10.26 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/tasks/ui/editors/TaskTextViewerConfiguration.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskTextViewerConfiguration.java,v >retrieving revision 1.9 >diff -u -r1.9 TaskTextViewerConfiguration.java >--- src/org/eclipse/mylyn/tasks/ui/editors/TaskTextViewerConfiguration.java 13 Feb 2008 03:41:46 -0000 1.9 >+++ src/org/eclipse/mylyn/tasks/ui/editors/TaskTextViewerConfiguration.java 21 Feb 2008 07:03:37 -0000 >@@ -15,6 +15,7 @@ > import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.jface.preference.JFacePreferences; > import org.eclipse.jface.resource.JFaceResources; >+import org.eclipse.jface.text.BadLocationException; > import org.eclipse.jface.text.IDocument; > import org.eclipse.jface.text.IRegion; > import org.eclipse.jface.text.TextAttribute; >@@ -28,7 +29,6 @@ > import org.eclipse.jface.text.rules.DefaultDamagerRepairer; > import org.eclipse.jface.text.rules.IRule; > import org.eclipse.jface.text.rules.IToken; >-import org.eclipse.jface.text.rules.MultiLineRule; > import org.eclipse.jface.text.rules.RuleBasedScanner; > import org.eclipse.jface.text.rules.SingleLineRule; > import org.eclipse.jface.text.rules.Token; >@@ -38,12 +38,15 @@ > import org.eclipse.mylyn.tasks.core.AbstractTask; > import org.eclipse.mylyn.tasks.core.TaskList; > import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi; > import org.eclipse.mylyn.tasks.ui.TaskHyperlink; > import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; >+import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi.HyperlinkRegularExpression; > import org.eclipse.swt.SWT; > import org.eclipse.swt.custom.StyleRange; > import org.eclipse.swt.graphics.Color; > import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Display; > import org.eclipse.ui.editors.text.EditorsUI; > import org.eclipse.ui.editors.text.TextSourceViewerConfiguration; > >@@ -61,10 +64,13 @@ > private RepositoryTextScanner scanner = null; > > private boolean spellcheck = false; >+ >+ private TaskRepository repository; > >- public TaskTextViewerConfiguration(boolean spellchecking) { >+ public TaskTextViewerConfiguration(boolean spellchecking, TaskRepository repository) { > super(EditorsUI.getPreferenceStore()); > this.spellcheck = spellchecking; >+ this.repository = repository; > } > > @Override >@@ -81,7 +87,7 @@ > > private RepositoryTextScanner getDefaultScanner() { > if (scanner == null) { >- scanner = new RepositoryTextScanner(); >+ scanner = new RepositoryTextScanner(repository); > } > return scanner; > } >@@ -199,40 +205,75 @@ > super.hideHyperlinks(); > } > >+ @Override > public void uninstall() { > // ignore > super.uninstall(); > } > } > >- private static class RepositoryTextScanner extends RuleBasedScanner { >+ public static class RepositoryTextScanner extends RuleBasedScanner { > >- public RepositoryTextScanner() { >+ public RepositoryTextScanner(TaskRepository repository) { >+ IToken urlToken = new Token(new TextAttribute(JFaceResources.getColorRegistry().get( >+ JFacePreferences.ACTIVE_HYPERLINK_COLOR))); > IToken bugToken = new Token(new TextAttribute(JFaceResources.getColorRegistry().get( > JFacePreferences.ACTIVE_HYPERLINK_COLOR))); >+ IToken bugTokenCompleted = new Token(new TextAttribute(JFaceResources.getColorRegistry().get( >+ JFacePreferences.ACTIVE_HYPERLINK_COLOR), new Color(Display.getDefault(), 255, 255, 255), >+ TextAttribute.STRIKETHROUGH)); >+ IToken bugTokenNotFound = new Token(new TextAttribute(JFaceResources.getColorRegistry().get( >+ JFacePreferences.HYPERLINK_COLOR), new Color(Display.getDefault(), 255, 255, 255), >+ TextAttribute.STRIKETHROUGH)); > IToken quoteToken = new Token(new TextAttribute(TaskListColorsAndFonts.COLOR_QUOTED_TEXT)); >- IRule[] rules = new IRule[16]; >- rules[0] = (new SingleLineRule("http://", " ", bugToken)); >- rules[1] = (new SingleLineRule("https://", " ", bugToken)); >- rules[2] = (new SingleLineRule("bug#", " ", bugToken)); >- rules[3] = (new SingleLineRule("bug#", "", bugToken)); >- rules[4] = (new SingleLineRule("bug #", "", bugToken)); >- rules[5] = (new SingleLineRule("http://", "\n", bugToken)); >- rules[6] = (new SingleLineRule("https://", "\n", bugToken)); >- rules[7] = (new SingleLineRule("task#", " ", bugToken)); >- rules[8] = (new MultiLineRule("task#", "\n", bugToken)); >- rules[9] = (new MultiLineRule("task# ", " ", bugToken)); >- rules[10] = (new SingleLineRule("task #", "\n", bugToken)); >- rules[11] = (new SingleLineRule("*** This bug has been ", "***", bugToken)); >- rules[12] = (new SingleLineRule("http://", "", bugToken)); >- rules[13] = (new SingleLineRule("https://", "", bugToken)); >- rules[14] = (new MultiLineRule("task #", " ", bugToken)); >- SingleLineRule quoteRule = new SingleLineRule(">", null, quoteToken, (char) 0, true); >- quoteRule.setColumnConstraint(0); >- rules[15] = quoteRule; >- setRules(rules); >- } > >+ AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(repository.getConnectorKind()); >+ if (connectorUi != null) { >+ HyperlinkRegularExpression hyperlinkData = connectorUi.getHyperlinkRegularExpression(true); >+ IRule[] rules = new IRule[8]; >+ rules[0] = (new SingleLineRule("http://", " ", urlToken)); >+ rules[1] = (new SingleLineRule("https://", " ", urlToken)); >+ rules[2] = (new TaskRule(repository, hyperlinkData.getRegularExpressionString(), >+ hyperlinkData.getRegularExpressionGroup(), bugToken, bugTokenCompleted, bugTokenNotFound)); >+ rules[3] = (new SingleLineRule("http://", "\n", urlToken)); >+ rules[4] = (new SingleLineRule("https://", "\n", urlToken)); >+ rules[5] = (new SingleLineRule("http://", "", urlToken)); >+ rules[6] = (new SingleLineRule("https://", "", urlToken)); >+ SingleLineRule quoteRule = new SingleLineRule(">", null, quoteToken, (char) 0, true); >+ quoteRule.setColumnConstraint(0); >+ rules[7] = quoteRule; >+ setRules(rules); >+ } else { >+ IRule[] rules = new IRule[7]; >+ rules[0] = (new SingleLineRule("http://", " ", urlToken)); >+ rules[1] = (new SingleLineRule("https://", " ", urlToken)); >+ rules[2] = (new SingleLineRule("http://", "\n", urlToken)); >+ rules[3] = (new SingleLineRule("https://", "\n", urlToken)); >+ rules[4] = (new SingleLineRule("http://", "", urlToken)); >+ rules[5] = (new SingleLineRule("https://", "", urlToken)); >+ SingleLineRule quoteRule = new SingleLineRule(">", null, quoteToken, (char) 0, true); >+ quoteRule.setColumnConstraint(0); >+ rules[6] = quoteRule; >+ setRules(rules); >+ } >+ } >+ >+ public void addToOffset(int length) { >+ fOffset += length; >+ } >+ >+ public String getLineTextFromPos() { >+ try { >+ int line= fDocument.getLineOfOffset(fOffset); >+ int start= fDocument.getLineOffset(line); >+ int length = fDocument.getLineLength(line); >+ >+ String erg = fDocument.get(fOffset, length-(fOffset-start)); >+ return erg; >+ } catch (BadLocationException ex) { >+ } >+ return null; >+ } > } > > } >Index: src/org/eclipse/mylyn/tasks/ui/editors/TaskRule.java >=================================================================== >RCS file: src/org/eclipse/mylyn/tasks/ui/editors/TaskRule.java >diff -N src/org/eclipse/mylyn/tasks/ui/editors/TaskRule.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/tasks/ui/editors/TaskRule.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,86 @@ >+/******************************************************************************* >+ * 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.tasks.ui.editors; >+ >+import java.util.regex.Matcher; >+import java.util.regex.Pattern; >+ >+import org.eclipse.jface.text.rules.ICharacterScanner; >+import org.eclipse.jface.text.rules.IPredicateRule; >+import org.eclipse.jface.text.rules.IToken; >+import org.eclipse.jface.text.rules.Token; >+import org.eclipse.mylyn.tasks.core.AbstractTask; >+import org.eclipse.mylyn.tasks.core.TaskList; >+import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; >+import org.eclipse.mylyn.tasks.ui.editors.TaskTextViewerConfiguration.RepositoryTextScanner; >+ >+public class TaskRule implements IPredicateRule {//extends SingleLineRule { >+ >+ /** The token to be returned on success */ >+ protected IToken fToken; >+ >+ private TaskRepository repository; >+ >+ protected IToken fTokenCompleted; >+ >+ protected IToken fTokenNotFound; >+ >+ private Pattern fPattern; >+ >+ private int taskNumberGroupNumber; >+ >+ public TaskRule(TaskRepository repository, String regexp, int taskNumberGroupNumber, IToken token, IToken tokenCompleted, IToken tokenNotFound) { >+ this.repository = repository; >+ fToken = token; >+ fTokenCompleted = tokenCompleted; >+ fTokenNotFound = tokenNotFound; >+ this.taskNumberGroupNumber = taskNumberGroupNumber; >+ fPattern = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE); >+ } >+ >+ public IToken evaluate(ICharacterScanner scanner, boolean resume) { >+ >+ String text = ((RepositoryTextScanner)scanner).getLineTextFromPos(); >+ Matcher m = fPattern.matcher(text); >+ if (m.find()) { >+ String taskNumber = m.group(taskNumberGroupNumber); >+ taskNumber = taskNumber.trim(); >+ if (!taskNumber.equals("")) { >+ ((RepositoryTextScanner)scanner).addToOffset(m.end()); >+ TaskList taskList = TasksUiPlugin.getTaskListManager().getTaskList(); >+ String repositoryUrl = repository.getUrl(); >+ >+ AbstractTask task = taskList.getTask(repositoryUrl, taskNumber); >+ if (task == null) { >+ task = taskList.getTaskByKey(repositoryUrl, taskNumber); >+ } >+ if (task != null) { >+ if (task.isCompleted()) { >+ return fTokenCompleted; >+ } else { >+ return fToken; >+ } >+ } else { >+ return fTokenNotFound; >+ } >+ } >+ } >+ >+ return Token.UNDEFINED; >+ } >+ >+ public IToken getSuccessToken() { >+ return fToken; >+ } >+ >+ public IToken evaluate(ICharacterScanner scanner) { >+ return evaluate(scanner, false); >+ } >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 167941
:
87571
|
87697
|
87698
|
87707
|
87711
|
87712
|
88044
|
88045
|
88078
|
88079
|
88334
|
88335
|
88674
|
88675
|
88720
|
88721
| 90296 |
90418
|
90419
|
90658
|
90659
|
110237
|
110238
|
110248
|
113800