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 88044 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]
1. Prove of concept for comment#6
patch167941Neu.txt (text/plain), 13.95 KB, created by
Frank Becker
on 2008-01-28 14:30:32 EST
(
hide
)
Description:
1. Prove of concept for comment#6
Filename:
MIME Type:
Creator:
Frank Becker
Created:
2008-01-28 14:30:32 EST
Size:
13.95 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java,v >retrieving revision 1.17 >diff -u -r1.17 TaskFormPage.java >--- src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java 7 Jan 2008 04:14:52 -0000 1.17 >+++ src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java 28 Jan 2008 19:16:25 -0000 >@@ -271,7 +271,7 @@ > // order for > // Hyperlink colouring to work. (Presenter needs document object up > // front) >- TaskTextViewerConfiguration repositoryViewerConfig = new TaskTextViewerConfiguration(false); >+ TaskTextViewerConfiguration repositoryViewerConfig = new TaskTextViewerConfiguration(false, repository); > commentViewer.configure(repositoryViewerConfig); > > IThemeManager themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager(); >@@ -405,7 +405,7 @@ > > // NOTE: Configuration must be applied before the document is set in order for > // Hyperlink coloring to work. (Presenter needs document object up front) >- TextSourceViewerConfiguration viewerConfig = new TaskTextViewerConfiguration(spellCheck); >+ TextSourceViewerConfiguration viewerConfig = new TaskTextViewerConfiguration(spellCheck, repository); > commentViewer.configure(viewerConfig); > > commentViewer.setDocument(document, annotationModel); >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.7 >diff -u -r1.7 TaskTextViewerConfiguration.java >--- src/org/eclipse/mylyn/tasks/ui/editors/TaskTextViewerConfiguration.java 24 Jan 2008 03:10:32 -0000 1.7 >+++ src/org/eclipse/mylyn/tasks/ui/editors/TaskTextViewerConfiguration.java 28 Jan 2008 19:16:25 -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; >@@ -44,6 +45,7 @@ > 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; > >@@ -60,10 +62,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 >@@ -80,7 +85,7 @@ > > private RepositoryTextScanner getDefaultScanner() { > if (scanner == null) { >- scanner = new RepositoryTextScanner(); >+ scanner = new RepositoryTextScanner(repository); > } > return scanner; > } >@@ -202,34 +207,51 @@ > } > } > >- private static class RepositoryTextScanner extends RuleBasedScanner { >+ public static class RepositoryTextScanner extends RuleBasedScanner { > >- public RepositoryTextScanner() { >- IToken bugToken = new Token(new TextAttribute(JFaceResources.getColorRegistry().get( >- JFacePreferences.ACTIVE_HYPERLINK_COLOR))); >+ public RepositoryTextScanner(TaskRepository repository) { >+ IToken urlToken = new Token(new TextAttribute(JFaceResources.getColorRegistry().get( >+ JFacePreferences.ACTIVE_HYPERLINK_COLOR))); >+ IToken bugToken = new Token(new TextAttribute(new Color(Display.getDefault(),255,128,128))); >+ IToken bugTokenCompleted = new Token(new TextAttribute(new Color(Display.getDefault(),255,128,128), new Color(Display.getDefault(),255,255,255),TextAttribute.STRIKETHROUGH)); //TaskListColorsAndFonts.GRAY)); //JFaceResources.getColorRegistry().get( >+ IToken bugTokenNotFound = new Token(new TextAttribute(new Color(Display.getDefault(),255,0,0), new Color(Display.getDefault(),255,255,255),TextAttribute.UNDERLINE)); //TaskListColorsAndFonts.GRAY)); //JFaceResources.getColorRegistry().get( > 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)); >+ IRule[] rules = new IRule[17]; >+ rules[0] = (new SingleLineRule("http://", " ", urlToken)); >+ rules[1] = (new SingleLineRule("https://", " ", urlToken)); >+ rules[2] = (new TaskRule(repository, "bug#", "", bugToken, bugTokenCompleted, bugTokenNotFound, '\0', true)); >+ rules[3] = (new TaskRule(repository, "bug#", " ", bugToken, bugTokenCompleted, bugTokenNotFound, '\0', true)); >+ rules[4] = (new TaskRule(repository, "bug#", "\n", bugToken, bugTokenCompleted, bugTokenNotFound, '\0', true)); >+ rules[5] = (new TaskRule(repository, "bug #", "", bugToken, bugTokenCompleted, bugTokenNotFound, '\0', true)); >+ rules[6] = (new SingleLineRule("http://", "\n", urlToken)); >+ rules[7] = (new SingleLineRule("https://", "\n", urlToken)); >+ rules[8] = (new SingleLineRule("task#", " ", bugToken)); >+ rules[9] = (new MultiLineRule("task#", "\n", bugToken)); >+ rules[10] = (new MultiLineRule("task# ", " ", bugToken)); >+ rules[11] = (new SingleLineRule("task #", "\n", bugToken)); >+ rules[12] = (new SingleLineRule("*** This bug has been ", "***", bugToken)); >+ rules[13] = (new SingleLineRule("http://", "", urlToken)); >+ rules[14] = (new SingleLineRule("https://", "", urlToken)); >+ rules[15] = (new MultiLineRule("task #", " ", bugToken)); > SingleLineRule quoteRule = new SingleLineRule(">", null, quoteToken, (char) 0, true); > quoteRule.setColumnConstraint(0); >- rules[15] = quoteRule; >+ rules[16] = quoteRule; > setRules(rules); > } >+ >+ public int getCharOffset() { >+ return fOffset; >+ } > >+ public String getTokenText(int start, int end) { >+ try { >+ return fDocument.get(start, end-start); >+ } catch (BadLocationException e) { >+ // TODO Auto-generated catch block >+ e.printStackTrace(); >+ } >+ return null; >+ } > } > > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextAttributeEditor.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextAttributeEditor.java,v >retrieving revision 1.1 >diff -u -r1.1 RichTextAttributeEditor.java >--- src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextAttributeEditor.java 13 Jan 2008 08:06:39 -0000 1.1 >+++ src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextAttributeEditor.java 28 Jan 2008 19:16:25 -0000 >@@ -124,7 +124,7 @@ > > // NOTE: configuration must be applied before the document is set in order for > // hyper link coloring to work, the Presenter requires the document object up front >- TextSourceViewerConfiguration viewerConfig = new TaskTextViewerConfiguration(spellCheckingEnabled); >+ TextSourceViewerConfiguration viewerConfig = new TaskTextViewerConfiguration(spellCheckingEnabled, taskRepository); > viewer.configure(viewerConfig); > > Document document = new Document(getValue()); >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,165 @@ >+/******************************************************************************* >+ * 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 org.eclipse.jface.text.rules.ICharacterScanner; >+import org.eclipse.jface.text.rules.IToken; >+import org.eclipse.jface.text.rules.SingleLineRule; >+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; >+ >+public class TaskRule extends SingleLineRule { >+ >+ private TaskRepository repository; >+ >+ private String taskNumber; >+ >+ protected IToken fTokenCompleted; >+ >+ protected IToken fTokenNotFound; >+ >+ public TaskRule(TaskRepository repository, String startSequence, String endSequence, IToken token, IToken tokenCompleted, IToken fTokenNotFound) { >+ super(startSequence, endSequence, token); >+ this.repository = repository; >+ this.fTokenCompleted = tokenCompleted; >+ this.fTokenNotFound = fTokenNotFound; >+ } >+ >+ public TaskRule(TaskRepository repository, String startSequence, String endSequence, IToken token, IToken tokenCompleted, IToken fTokenNotFound, >+ char escapeCharacter) { >+ super(startSequence, endSequence, token, escapeCharacter); >+ this.repository = repository; >+ this.fTokenCompleted = tokenCompleted; >+ this.fTokenNotFound = fTokenNotFound; >+ } >+ >+ public TaskRule(TaskRepository repository, String startSequence, String endSequence, IToken token, IToken tokenCompleted, IToken fTokenNotFound, >+ char escapeCharacter, boolean breaksOnEOF) { >+ super(startSequence, endSequence, token, escapeCharacter, breaksOnEOF); >+ this.repository = repository; >+ this.fTokenCompleted = tokenCompleted; >+ this.fTokenNotFound = fTokenNotFound; >+ } >+ >+ public TaskRule(TaskRepository repository, String startSequence, String endSequence, IToken token, IToken tokenCompleted, IToken fTokenNotFound, >+ char escapeCharacter, boolean breaksOnEOF, boolean escapeContinuesLine) { >+ super(startSequence, endSequence, token, escapeCharacter, breaksOnEOF, escapeContinuesLine); >+ this.repository = repository; >+ this.fTokenCompleted = tokenCompleted; >+ this.fTokenNotFound = fTokenNotFound; >+ } >+ >+ @Override >+ public IToken evaluate(ICharacterScanner scanner, boolean resume) { >+ // ignore >+ return super.evaluate(scanner, resume); >+ } >+ >+ protected String detectedTaskNumber(ICharacterScanner scanner) { >+ String erg = ""; >+ int c = scanner.read(); >+ while (Character.isDigit(c)) { >+ erg = erg + (char) c; >+ c = scanner.read(); >+ } >+ if (!erg.equals("")) >+ scanner.unread(); >+ return erg; >+ } >+ >+ @Override >+ protected IToken doEvaluate(ICharacterScanner scanner, boolean resume) { >+ >+ if (resume) { >+ >+ if (endSequenceDetected(scanner)) >+ return fToken; >+ >+ } else { >+ >+ int c = scanner.read(); >+ if (c == fStartSequence[0]) { >+ if (sequenceDetected(scanner, fStartSequence, false)) { >+ taskNumber = detectedTaskNumber(scanner); >+ if (!taskNumber.equals("")) { >+ if (endSequenceDetected(scanner)) { >+ 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; >+ } >+ } >+ for (int i= 0; i < fStartSequence.length; i++) { >+ scanner.unread(); >+ } >+ } else { >+ for (int i= 0; i < fStartSequence.length; i++) { >+ scanner.unread(); >+ } >+ } >+ } >+ } >+ } >+ >+ scanner.unread(); >+ return Token.UNDEFINED; >+ >+/* int startOffset = 0; >+ int endOffset = 0; >+ >+ if (scanner instanceof RepositoryTextScanner) { >+ startOffset = ((RepositoryTextScanner)scanner).getCharOffset(); >+ } >+ IToken erg = super.doEvaluate(scanner, resume); >+ >+ if (erg !=Token.UNDEFINED && scanner instanceof RepositoryTextScanner) { >+ endOffset = ((RepositoryTextScanner)scanner).getCharOffset(); >+ if (endOffset > startOffset) { >+ String tokStr = ((RepositoryTextScanner)scanner).getTokenText(startOffset, endOffset); >+ String numStr = tokStr.substring(4); >+ numStr = numStr.trim(); >+ TaskList taskList = TasksUiPlugin.getTaskListManager().getTaskList(); >+ String repositoryUrl = repository.getUrl(); >+ >+ AbstractTask task = taskList.getTask(repositoryUrl, numStr); >+ if (task == null) { >+ task = taskList.getTaskByKey(repositoryUrl, numStr); >+ } >+ if (task != null) { if ( task.isCompleted()) { >+ int i1 = 2; >+ i1 = i1 * 2; >+ } >+ } >+ int i = 2; >+ i = i * 2; >+ } >+ } >+ >+ if (repository != null) { >+ String aa = repository.getUrl(); >+ int a = 1; >+ } >+ return erg; >+*/ >+ } >+}
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