Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 235222 | Differences between
and this patch

Collapse All | Expand All

(-).refactorings/2008/6/23/refactorings.index (+8 lines)
Lines 2-4 Link Here
2
1212381972354	Convert member type 'TaskAttributeDiff' to top level
2
1212381972354	Convert member type 'TaskAttributeDiff' to top level
3
1212387128201	Extract local variable 'size'
3
1212387128201	Extract local variable 'size'
4
1212388250355	Extract local variable 'label'
4
1212388250355	Extract local variable 'label'
5
1212453678453	Move compilation unit
6
1212471788453	Convert local variable 'folder' to field
7
1212478092171	Convert local variable 'viewr' to field
8
1212481630750	Convert local variable 'document' to field
9
1212482179921	Move package
10
1212482655906	Rename package 'org.eclipse.mylyn.internal.tasks.wiki'
11
1212482712906	Delete element
12
1212483094343	Move compilation unit
(-).refactorings/2008/6/23/refactorings.history (-1 / +1 lines)
Lines 1-3 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
1
<?xml version="1.0" encoding="UTF-8"?>
2
<session version="1.0">&#x0A;<refactoring comment="Copy 1 elements(s) to &apos;org.eclipse.mylyn.tasks.ui/src/org.eclipse.mylyn.internal.tasks.ui.notifications&apos;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0A;- Destination element: &apos;org.eclipse.mylyn.tasks.ui/src/org.eclipse.mylyn.internal.tasks.ui.notifications&apos;&#x0A;- Original element: &apos;org.eclipse.mylyn.internal.tasks.ui.LegacyChangeManager.java&apos;" description="Copy compilation unit" destination="/src&lt;org.eclipse.mylyn.internal.tasks.ui.notifications" element1="/src&lt;org.eclipse.mylyn.internal.tasks.ui{LegacyChangeManager.java" files="0" flags="589830" folders="0" id="org.eclipse.jdt.ui.copy" policy="org.eclipse.jdt.ui.copyResources" stamp="1212381060856" units="1" version="1.0"/>&#x0A;<refactoring comment="Convert member type &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff.TaskAttributeDiff&apos; in &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff&apos; to top level type&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0A;- Original element: &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff.TaskAttributeDiff&apos;&#x0A;- Field name: &apos;taskDataDiff&apos;&#x0A;- Declare field &apos;final&apos;" description="Convert member type &apos;TaskAttributeDiff&apos; to top level" field="false" fieldName="taskDataDiff" final="true" flags="786438" id="org.eclipse.jdt.ui.move.inner" input="/src&lt;org.eclipse.mylyn.internal.tasks.ui.notifications{TaskDataDiff.java[TaskDataDiff[TaskAttributeDiff" mandatory="false" possible="false" stamp="1212381972354" version="1.0"/>&#x0A;<refactoring comment="Extract local variable &apos;size&apos; from expression &apos;newComments.size()&apos;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0A;- Variable name: &apos;size&apos;&#x0A;- Destination method: &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff.toString()&apos;&#x0A;- Variable expression: &apos;newComments.size()&apos;&#x0A;- Replace occurrences of expression with variable" description="Extract local variable &apos;size&apos;" final="false" id="org.eclipse.jdt.ui.extract.temp" input="/src&lt;org.eclipse.mylyn.internal.tasks.ui.notifications{TaskDataDiff.java" name="size" replace="true" selection="4350 18" stamp="1212387128201" version="1.0"/>&#x0A;<refactoring comment="Extract local variable &apos;label&apos; from expression &apos;attributeDiff.getLabel()&apos;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0A;- Variable name: &apos;label&apos;&#x0A;- Destination method: &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff.toString()&apos;&#x0A;- Variable expression: &apos;attributeDiff.getLabel()&apos;&#x0A;- Replace occurrences of expression with variable" description="Extract local variable &apos;label&apos;" final="false" id="org.eclipse.jdt.ui.extract.temp" input="/src&lt;org.eclipse.mylyn.internal.tasks.ui.notifications{TaskDataDiff.java" name="label" replace="true" selection="4466 24" stamp="1212388250355" version="1.0"/>
2
<session version="1.0">&#x0A;<refactoring comment="Copy 1 elements(s) to &apos;org.eclipse.mylyn.tasks.ui/src/org.eclipse.mylyn.internal.tasks.ui.notifications&apos;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0A;- Destination element: &apos;org.eclipse.mylyn.tasks.ui/src/org.eclipse.mylyn.internal.tasks.ui.notifications&apos;&#x0A;- Original element: &apos;org.eclipse.mylyn.internal.tasks.ui.LegacyChangeManager.java&apos;" description="Copy compilation unit" destination="/src&lt;org.eclipse.mylyn.internal.tasks.ui.notifications" element1="/src&lt;org.eclipse.mylyn.internal.tasks.ui{LegacyChangeManager.java" files="0" flags="589830" folders="0" id="org.eclipse.jdt.ui.copy" policy="org.eclipse.jdt.ui.copyResources" stamp="1212381060856" units="1" version="1.0"/>&#x0A;<refactoring comment="Convert member type &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff.TaskAttributeDiff&apos; in &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff&apos; to top level type&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0A;- Original element: &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff.TaskAttributeDiff&apos;&#x0A;- Field name: &apos;taskDataDiff&apos;&#x0A;- Declare field &apos;final&apos;" description="Convert member type &apos;TaskAttributeDiff&apos; to top level" field="false" fieldName="taskDataDiff" final="true" flags="786438" id="org.eclipse.jdt.ui.move.inner" input="/src&lt;org.eclipse.mylyn.internal.tasks.ui.notifications{TaskDataDiff.java[TaskDataDiff[TaskAttributeDiff" mandatory="false" possible="false" stamp="1212381972354" version="1.0"/>&#x0A;<refactoring comment="Extract local variable &apos;size&apos; from expression &apos;newComments.size()&apos;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0A;- Variable name: &apos;size&apos;&#x0A;- Destination method: &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff.toString()&apos;&#x0A;- Variable expression: &apos;newComments.size()&apos;&#x0A;- Replace occurrences of expression with variable" description="Extract local variable &apos;size&apos;" final="false" id="org.eclipse.jdt.ui.extract.temp" input="/src&lt;org.eclipse.mylyn.internal.tasks.ui.notifications{TaskDataDiff.java" name="size" replace="true" selection="4350 18" stamp="1212387128201" version="1.0"/>&#x0A;<refactoring comment="Extract local variable &apos;label&apos; from expression &apos;attributeDiff.getLabel()&apos;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0A;- Variable name: &apos;label&apos;&#x0A;- Destination method: &apos;org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff.toString()&apos;&#x0A;- Variable expression: &apos;attributeDiff.getLabel()&apos;&#x0A;- Replace occurrences of expression with variable" description="Extract local variable &apos;label&apos;" final="false" id="org.eclipse.jdt.ui.extract.temp" input="/src&lt;org.eclipse.mylyn.internal.tasks.ui.notifications{TaskDataDiff.java" name="label" replace="true" selection="4466 24" stamp="1212388250355" version="1.0"/>&#x0A;<refactoring comment="Move 1 elements(s) to &apos;org.eclipse.mylyn.jira.ui/src/org.eclipse.mylyn.internal.jira.ui.editor&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0D;&#x0A;- Destination element: &apos;org.eclipse.mylyn.jira.ui/src/org.eclipse.mylyn.internal.jira.ui.editor&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.java&apos;&#x0D;&#x0A;- Update references to refactored element" description="Move compilation unit" destination="=org.eclipse.mylyn.jira.ui/src&lt;org.eclipse.mylyn.internal.jira.ui.editor" element1="/src&lt;org.eclipse.mylyn.internal.tasks.ui.editors{TaskEditorWikiTextPart.java" files="0" flags="589830" folders="0" id="org.eclipse.jdt.ui.move" patterns="*" policy="org.eclipse.jdt.ui.moveResources" qualified="false" references="true" stamp="1212453678453" units="1" version="1.0"/>&#x0A;<refactoring comment="Convert local variable &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.createControl().folder&apos; in &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.createControl()&apos; to field&#x0D;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.createControl().folder&apos;&#x0D;&#x0A;- Field name: &apos;folder&apos;&#x0D;&#x0A;- Initialize field in method&#x0D;&#x0A;- Declared visibility: &apos;private&apos;" description="Convert local variable &apos;folder&apos; to field" final="false" flags="2" id="org.eclipse.jdt.ui.promote.temp" initialize="1" input="/src&lt;org.eclipse.mylyn.internal.tasks.ui.editors{TaskEditorWikiTextPart.java" name="folder" selection="1397 6" stamp="1212471788453" static="false" version="1.0" visibility="2"/>&#x0A;<refactoring comment="Convert local variable &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.createControl().viewr&apos; in &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.createControl()&apos; to field&#x0D;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.createControl().viewr&apos;&#x0D;&#x0A;- Field name: &apos;viewr&apos;&#x0D;&#x0A;- Initialize field in method&#x0D;&#x0A;- Declared visibility: &apos;private&apos;" description="Convert local variable &apos;viewr&apos; to field" final="false" flags="2" id="org.eclipse.jdt.ui.promote.temp" initialize="1" input="/src&lt;org.eclipse.mylyn.internal.tasks.ui.editors{TaskEditorWikiTextPart.java" name="viewr" selection="3124 5" stamp="1212478092171" static="false" version="1.0" visibility="2"/>&#x0A;<refactoring comment="Convert local variable &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.createControl().document&apos; in &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.createControl()&apos; to field&#x0D;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart.createControl().document&apos;&#x0D;&#x0A;- Field name: &apos;document&apos;&#x0D;&#x0A;- Initialize field in method&#x0D;&#x0A;- Declared visibility: &apos;private&apos;" description="Convert local variable &apos;document&apos; to field" final="false" flags="2" id="org.eclipse.jdt.ui.promote.temp" initialize="1" input="/src&lt;org.eclipse.mylyn.internal.tasks.ui.editors{TaskEditorWikiTextPart.java" name="document" selection="3889 8" stamp="1212481630750" static="false" version="1.0" visibility="2"/>&#x0A;<refactoring comment="Move 1 package(s) to &apos;org.eclipse.mylyn.jira.ui/src&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0D;&#x0A;- Destination element: &apos;org.eclipse.mylyn.jira.ui/src&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.mylyn.tasks.ui/src/org.eclipse.mylyn.internal.jira.wiki&apos;" description="Move package" destination="=org.eclipse.mylyn.jira.ui/src" element1="/src&lt;org.eclipse.mylyn.internal.jira.wiki" flags="589830" fragments="1" id="org.eclipse.jdt.ui.move" policy="org.eclipse.jdt.ui.movePackages" stamp="1212482179921" version="1.0"/>&#x0A;<refactoring comment="Rename package &apos;org.eclipse.mylyn.internal.tasks.wiki&apos; to &apos;org.eclipse.mylyn.internal.tasks.ui.wiki&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.mylyn.tasks.ui/src/org.eclipse.mylyn.internal.tasks.wiki&apos;&#x0D;&#x0A;- Renamed element: &apos;org.eclipse.mylyn.tasks.ui/src/org.eclipse.mylyn.internal.tasks.ui.wiki&apos;&#x0D;&#x0A;- Update references to refactored element&#x0D;&#x0A;- Update textual occurrences in comments and strings" description="Rename package &apos;org.eclipse.mylyn.internal.tasks.wiki&apos;" flags="589830" hierarchical="false" id="org.eclipse.jdt.ui.rename.package" input="/src&lt;org.eclipse.mylyn.internal.tasks.wiki" name="org.eclipse.mylyn.internal.tasks.ui.wiki" qualified="false" references="true" stamp="1212482655906" textual="false" version="1.0"/>&#x0A;<refactoring accessors="true" comment="Delete 1 element(s) from project &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.mylyn.internal.tasks.ui.wiki.Snippet.java&apos;" description="Delete element" element1="/src&lt;org.eclipse.mylyn.internal.tasks.ui.wiki{Snippet.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1212482712906" subPackages="false" version="1.0"/>&#x0A;<refactoring comment="Move 1 elements(s) to &apos;org.eclipse.mylyn.tasks.ui/src/org.eclipse.mylyn.internal.tasks.ui.wiki&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0D;&#x0A;- Destination element: &apos;org.eclipse.mylyn.tasks.ui/src/org.eclipse.mylyn.internal.tasks.ui.wiki&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.mylyn.tasks.ui.editors.AbstractRenderingEngine2.java&apos;&#x0D;&#x0A;- Update references to refactored element" description="Move compilation unit" destination="/src&lt;org.eclipse.mylyn.internal.tasks.ui.wiki" element1="/src&lt;org.eclipse.mylyn.tasks.ui.editors{AbstractRenderingEngine2.java" files="0" flags="589830" folders="0" id="org.eclipse.jdt.ui.move" patterns="*" policy="org.eclipse.jdt.ui.moveResources" qualified="false" references="true" stamp="1212483094343" units="1" version="1.0"/>
3
</session>
3
</session>
(-)META-INF/MANIFEST.MF (-1 / +3 lines)
Lines 25-31 Link Here
25
 org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
25
 org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
26
 org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
26
 org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
27
 org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)",
27
 org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)",
28
 org.apache.commons.logging;bundle-version="1.0.4"
28
 org.apache.commons.logging;bundle-version="1.0.4",
29
 org.eclipse.mylyn.wikitext;bundle-version="1.0.0"
29
Bundle-ActivationPolicy: lazy
30
Bundle-ActivationPolicy: lazy
30
Bundle-Vendor: Eclipse.org
31
Bundle-Vendor: Eclipse.org
31
Export-Package: org.eclipse.mylyn.internal.tasks.ui;x-internal:=true,
32
Export-Package: org.eclipse.mylyn.internal.tasks.ui;x-internal:=true,
Lines 40-45 Link Here
40
 org.eclipse.mylyn.internal.tasks.ui.search;x-internal:=true,
41
 org.eclipse.mylyn.internal.tasks.ui.search;x-internal:=true,
41
 org.eclipse.mylyn.internal.tasks.ui.util;x-internal:=true,
42
 org.eclipse.mylyn.internal.tasks.ui.util;x-internal:=true,
42
 org.eclipse.mylyn.internal.tasks.ui.views;x-internal:=true,
43
 org.eclipse.mylyn.internal.tasks.ui.views;x-internal:=true,
44
 org.eclipse.mylyn.internal.tasks.ui.wiki,
43
 org.eclipse.mylyn.internal.tasks.ui.wizards;x-internal:=true,
45
 org.eclipse.mylyn.internal.tasks.ui.wizards;x-internal:=true,
44
 org.eclipse.mylyn.internal.tasks.ui.workingsets;x-internal:=true,
46
 org.eclipse.mylyn.internal.tasks.ui.workingsets;x-internal:=true,
45
 org.eclipse.mylyn.tasks.ui,
47
 org.eclipse.mylyn.tasks.ui,
(-).settings/.api_filters (+8 lines)
Lines 8-11 Link Here
8
            </message_arguments>
8
            </message_arguments>
9
        </filter>
9
        </filter>
10
    </resource>
10
    </resource>
11
    <resource path="src/org/eclipse/mylyn/internal/jira/wiki/JiraTaskEditorWikiTextPart.java" type="org.eclipse.mylyn.internal.jira.wiki.JiraTaskEditorWikiTextPart">
12
        <filter id="576720909">
13
            <message_arguments>
14
                <message_argument value="TaskEditorWikiTextPart"/>
15
                <message_argument value="JiraTaskEditorWikiTextPart"/>
16
            </message_arguments>
17
        </filter>
18
    </resource>
11
</component>
19
</component>
(-)src/org/eclipse/mylyn/internal/tasks/ui/wiki/JiraRenderingEngine.java (+25 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2004, 2007 Mylyn project committers and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *******************************************************************************/
8
9
package org.eclipse.mylyn.internal.tasks.ui.wiki;
10
11
import org.eclipse.mylyn.wikitext.parser.markup.MarkupLanguage;
12
13
/**
14
 * @author Owen
15
 * @since 3.0
16
 */
17
public class JiraRenderingEngine extends AbstractRenderingEngine2 {
18
19
	//for testing purpose to use Textile
20
	@Override
21
	public MarkupLanguage buildMarkupLaguage() {
22
		return getMarkupLanguage(AbstractRenderingEngine2.TEXTILE);
23
	}
24
25
}
(-)src/org/eclipse/mylyn/internal/tasks/ui/wiki/JiraTaskEditorWikiTextPart.java (+31 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2004, 2007 Mylyn project committers and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *******************************************************************************/
8
9
package org.eclipse.mylyn.internal.tasks.ui.wiki;
10
11
import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorWikiTextPart;
12
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
13
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
14
import org.eclipse.ui.forms.widgets.ExpandableComposite;
15
16
/**
17
 * @since 3.0
18
 */
19
public class JiraTaskEditorWikiTextPart extends TaskEditorWikiTextPart {
20
	public JiraTaskEditorWikiTextPart() {
21
		setPartName("New Comment");
22
		setSectionStyle(ExpandableComposite.TITLE_BAR | ExpandableComposite.EXPANDED);
23
		setExpandVertically(true);
24
	}
25
26
	@Override
27
	public void initialize(AbstractTaskEditorPage taskEditorPage) {
28
		super.initialize(taskEditorPage);
29
		setAttribute(getModel().getTaskData().getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW));
30
	}
31
}
(-)src/org/eclipse/mylyn/internal/tasks/ui/wiki/AbstractRenderingEngine2.java (+107 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2004, 2007 Mylyn project committers and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *******************************************************************************/
8
9
package org.eclipse.mylyn.internal.tasks.ui.wiki;
10
11
import java.io.PrintWriter;
12
import java.io.StringWriter;
13
14
import org.eclipse.mylyn.tasks.core.TaskRepository;
15
import org.eclipse.mylyn.wikitext.WikiTextPlugin;
16
import org.eclipse.mylyn.wikitext.parser.Attributes;
17
import org.eclipse.mylyn.wikitext.parser.MarkupParser;
18
import org.eclipse.mylyn.wikitext.parser.DocumentBuilder.BlockType;
19
import org.eclipse.mylyn.wikitext.parser.builder.HtmlDocumentBuilder;
20
import org.eclipse.mylyn.wikitext.parser.markup.MarkupLanguage;
21
22
/**
23
 * @author Owen
24
 * @since 3.0 probably can replace AbstractRenderingEngine
25
 */
26
public abstract class AbstractRenderingEngine2 {
27
28
	public static String TEXTILE = "Textile";
29
30
	public static String MEDIAWIKI = "MediaWiki";
31
32
	public static String TRACWIKI = "TracWiki";
33
34
	public static String CONFLUENCE = "Confluence";
35
36
	public static String DEFAULT_LANGUAGE = TEXTILE;
37
38
	public abstract MarkupLanguage buildMarkupLaguage();
39
40
	protected MarkupLanguage getMarkupLanguage(String markupLanguageName) {
41
		MarkupLanguage dialect = WikiTextPlugin.getDefault().getMarkupLanguage(markupLanguageName);
42
43
		return dialect != null ? dialect : WikiTextPlugin.getDefault().getMarkupLanguage(DEFAULT_LANGUAGE);
44
	}
45
46
	public String renderAsHtml(TaskRepository repository, String text) {
47
		String xhtml = null;
48
		if (!(text.length() > 0)) {
49
			xhtml = "<?xml version=\"1.0\" ?><html xmlns=\"http://www.w3.org/1999/xhtml\"><body></body></html>";
50
		} else {
51
			try {
52
				MarkupParser markupParser = new MarkupParser();
53
54
//				IFile file = getFile();
55
//				String title = file.getName();
56
//				if (title.lastIndexOf('.') != -1) {
57
//					title = title.substring(0, title.lastIndexOf('.'));
58
//				}
59
60
				// ignore for now
61
				String title = "TEST";
62
63
				StringWriter writer = new StringWriter();
64
				HtmlDocumentBuilder builder = new HtmlDocumentBuilder(writer);
65
				builder.setTitle(title);
66
67
				// ignore for now				
68
//				IPath location = file.getLocation();
69
//				if (location != null) {
70
//					builder.setBaseInHead(true);
71
//					builder.setBase(location.removeLastSegments(1).toFile().toURI());
72
//				}
73
74
				markupParser.setBuilder(builder);
75
				markupParser.setMarkupLanaguage(buildMarkupLaguage());
76
				if (markupParser.getMarkupLanguage() == null) {
77
					builder.beginDocument();
78
					builder.beginBlock(BlockType.PREFORMATTED, new Attributes());
79
					builder.characters(text);
80
					builder.endBlock();
81
					builder.endDocument();
82
				} else {
83
					markupParser.getMarkupLanguage().setBlocksOnly(false);
84
					markupParser.getMarkupLanguage().setFilterGenerativeContents(false);
85
					markupParser.parse(text);
86
				}
87
				xhtml = writer.toString();
88
			} catch (Exception e) {
89
				StringWriter stackTrace = new StringWriter();
90
				PrintWriter writer = new PrintWriter(stackTrace);
91
				e.printStackTrace(writer);
92
				writer.close();
93
94
				StringWriter documentWriter = new StringWriter();
95
				HtmlDocumentBuilder builder = new HtmlDocumentBuilder(documentWriter);
96
				builder.beginDocument();
97
				builder.beginBlock(BlockType.PREFORMATTED, new Attributes());
98
				builder.characters(stackTrace.toString());
99
				builder.endBlock();
100
				builder.endDocument();
101
102
				xhtml = writer.toString();
103
			}
104
		}
105
		return xhtml;
106
	}
107
}
(-)src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorWikiTextPart.java (+238 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2004, 2007 Mylyn project committers and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *******************************************************************************/
8
9
package org.eclipse.mylyn.internal.tasks.ui.editors;
10
11
import org.eclipse.jface.text.Document;
12
import org.eclipse.jface.text.IDocument;
13
import org.eclipse.jface.text.reconciler.IReconciler;
14
import org.eclipse.jface.text.source.IOverviewRuler;
15
import org.eclipse.jface.text.source.ISourceViewer;
16
import org.eclipse.jface.text.source.IVerticalRuler;
17
import org.eclipse.jface.text.source.SourceViewer;
18
import org.eclipse.jface.text.source.VerticalRuler;
19
import org.eclipse.jface.viewers.Viewer;
20
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
21
import org.eclipse.mylyn.internal.tasks.ui.wiki.AbstractRenderingEngine2;
22
import org.eclipse.mylyn.internal.tasks.ui.wiki.JiraRenderingEngine;
23
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
24
import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
25
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
26
import org.eclipse.swt.SWT;
27
import org.eclipse.swt.browser.Browser;
28
import org.eclipse.swt.custom.CTabFolder;
29
import org.eclipse.swt.custom.CTabItem;
30
import org.eclipse.swt.custom.StyledText;
31
import org.eclipse.swt.events.SelectionEvent;
32
import org.eclipse.swt.events.SelectionListener;
33
import org.eclipse.swt.graphics.Font;
34
import org.eclipse.swt.graphics.Point;
35
import org.eclipse.swt.layout.GridData;
36
import org.eclipse.swt.layout.GridLayout;
37
import org.eclipse.swt.widgets.Composite;
38
import org.eclipse.ui.PlatformUI;
39
import org.eclipse.ui.forms.widgets.ExpandableComposite;
40
import org.eclipse.ui.forms.widgets.FormToolkit;
41
import org.eclipse.ui.forms.widgets.Section;
42
import org.eclipse.ui.internal.EditorAreaHelper;
43
import org.eclipse.ui.internal.WorkbenchPage;
44
import org.eclipse.ui.themes.IThemeManager;
45
46
public class TaskEditorWikiTextPart extends AbstractTaskEditorPart {
47
48
	private Browser browser;
49
50
	private CTabFolder folder;
51
52
	private int sectionStyle;
53
54
	private Composite composite;
55
56
	private StyledText text;
57
58
	private TaskAttribute attribute;
59
60
	/** The width of the vertical ruler. */
61
	protected static final int VERTICAL_RULER_WIDTH = 12;
62
63
	private ISourceViewer viewer;
64
65
	private boolean previewDirty;
66
67
	private IDocument document;
68
69
	public TaskEditorWikiTextPart() {
70
		setSectionStyle(ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
71
	}
72
73
	public void appendText(String text) {
74
		//ignore for now
75
	}
76
77
	public int getSectionStyle() {
78
		return sectionStyle;
79
	}
80
81
	public void setSectionStyle(int sectionStyle) {
82
		this.sectionStyle = sectionStyle;
83
	}
84
85
	@Override
86
	public void createControl(Composite parent, FormToolkit toolkit) {
87
88
		if (attribute == null) {
89
			return;
90
		}
91
92
		Section section = createSection(parent, toolkit, sectionStyle);
93
94
		composite = toolkit.createComposite(section);
95
		GridLayout layout = new GridLayout();
96
		layout.numColumns = 1;
97
		composite.setLayout(layout);
98
99
		folder = new CTabFolder(composite, SWT.BOTTOM | SWT.FLAT | SWT.BORDER);
100
101
		{
102
			CTabItem viewerItem = new CTabItem(folder, SWT.NONE);
103
			viewerItem.setText("Source");
104
			viewerItem.setToolTipText("Edit Source");
105
106
			viewer = new MarkupSourceViewer(folder, new VerticalRuler(VERTICAL_RULER_WIDTH), SWT.V_SCROLL
107
					| SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION | SWT.WRAP);
108
			document = new Document(attribute.getValue());
109
			viewer.setEditable(true);
110
			viewer.setDocument(document);
111
			IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
112
			Font font = themeManager.getCurrentTheme().getFontRegistry().get(CommonThemes.FONT_EDITOR_COMMENT);
113
			viewer.getTextWidget().setFont(font);
114
115
			viewerItem.setControl(viewer instanceof Viewer ? ((Viewer) viewer).getControl() : viewer.getTextWidget());
116
			folder.setSelection(viewerItem);
117
118
		}
119
120
		{
121
			CTabItem previewItem = new CTabItem(folder, SWT.NONE);
122
			previewItem.setText("Preview");
123
			previewItem.setToolTipText("Preview Source");
124
125
			browser = new Browser(folder, SWT.NONE);
126
			previewItem.setControl(browser);
127
		}
128
129
		folder.addSelectionListener(new SelectionListener() {
130
			public void widgetDefaultSelected(SelectionEvent selectionevent) {
131
				widgetSelected(selectionevent);
132
			}
133
134
			public void widgetSelected(SelectionEvent selectionevent) {
135
				updatePreview();
136
			}
137
138
		});
139
140
		final GridData gd = new GridData();
141
		// wrap text at this margin, see comment below
142
		int width = getEditorWidth();
143
		// the goal is to make the text viewer as big as the text so it does not require scrolling when first drawn 
144
		// on screen
145
		Point size = folder.computeSize(width, SWT.DEFAULT, true);
146
		gd.widthHint = AbstractAttributeEditor.MAXIMUM_WIDTH;
147
		gd.horizontalAlignment = SWT.FILL;
148
		gd.grabExcessHorizontalSpace = true;
149
		// limit height to be avoid dynamic resizing of the text widget: 
150
		// MAXIMUM_HEIGHT < height < MAXIMUM_HEIGHT * 4  
151
		//gd.minimumHeight = AbstractAttributeEditor.MAXIMUM_HEIGHT;
152
		gd.heightHint = Math.min(Math.max(AbstractAttributeEditor.MAXIMUM_HEIGHT, size.y),
153
				AbstractAttributeEditor.MAXIMUM_HEIGHT * 4);
154
		if (getExpandVertically()) {
155
			gd.verticalAlignment = SWT.FILL;
156
			gd.grabExcessVerticalSpace = true;
157
		}
158
		folder.setLayoutData(gd);
159
		//folder.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
160
161
		//toolkit.adapt(folder, true, true);
162
		toolkit.paintBordersFor(composite);
163
		section.setClient(composite);
164
		setSection(toolkit, section);
165
	}
166
167
	private int getEditorWidth() {
168
		int widthHint = 0;
169
		if (getManagedForm() != null && getManagedForm().getForm() != null) {
170
			widthHint = getManagedForm().getForm().getClientArea().width - 90;
171
		}
172
		if (widthHint <= 0 && getTaskEditorPage().getEditor().getEditorSite() != null
173
				&& getTaskEditorPage().getEditor().getEditorSite().getPage() != null) {
174
			EditorAreaHelper editorManager = ((WorkbenchPage) getTaskEditorPage().getEditor().getEditorSite().getPage()).getEditorPresentation();
175
			if (editorManager != null && editorManager.getLayoutPart() != null) {
176
				widthHint = editorManager.getLayoutPart().getControl().getBounds().width - 90;
177
			}
178
		}
179
		if (widthHint <= 0) {
180
			widthHint = AbstractAttributeEditor.MAXIMUM_WIDTH;
181
		}
182
		return widthHint;
183
	}
184
185
	protected Composite getComposite() {
186
		return composite;
187
	}
188
189
	public TaskAttribute getAttribute() {
190
		return attribute;
191
	}
192
193
	protected StyledText getText() {
194
		return text;
195
	}
196
197
	public void setAttribute(TaskAttribute attribute) {
198
		this.attribute = attribute;
199
	}
200
201
	@Override
202
	public void setFocus() {
203
		if (folder != null && folder.getSelection() != null) {
204
			folder.getSelection().getControl().setFocus();
205
		}
206
	}
207
208
	private static class MarkupSourceViewer extends SourceViewer {
209
210
		public MarkupSourceViewer(Composite parent, IVerticalRuler ruler, int styles) {
211
			super(parent, ruler, styles);
212
		}
213
214
		public MarkupSourceViewer(Composite parent, IVerticalRuler verticalRuler, IOverviewRuler overviewRuler,
215
				boolean showAnnotationsOverview, int styles) {
216
			super(parent, verticalRuler, overviewRuler, showAnnotationsOverview, styles);
217
		}
218
219
		public IReconciler getReconciler() {
220
			return fReconciler;
221
		}
222
	}
223
224
	private void updatePreview() {
225
		if (/*previewDirty && */browser != null) {
226
			String xhtml = null;
227
			if (document == null) {
228
				xhtml = "<?xml version=\"1.0\" ?><html xmlns=\"http://www.w3.org/1999/xhtml\"><body></body></html>"; //$NON-NLS-1$
229
			} else {
230
				AbstractRenderingEngine2 engine = new JiraRenderingEngine();
231
				xhtml = engine.renderAsHtml(null, document.get());
232
			}
233
234
			browser.setText(xhtml);
235
			//previewDirty = false;
236
		}
237
	}
238
}
(-)src/org/eclipse/mylyn/internal/jira/ui/editor/JiraTaskEditorPage.java (+28 lines)
Lines 8-19 Link Here
8
8
9
package org.eclipse.mylyn.internal.jira.ui.editor;
9
package org.eclipse.mylyn.internal.jira.ui.editor;
10
10
11
import java.util.Set;
12
11
import org.eclipse.core.runtime.CoreException;
13
import org.eclipse.core.runtime.CoreException;
12
import org.eclipse.mylyn.internal.jira.core.JiraAttribute;
14
import org.eclipse.mylyn.internal.jira.core.JiraAttribute;
13
import org.eclipse.mylyn.internal.jira.core.JiraClientFactory;
15
import org.eclipse.mylyn.internal.jira.core.JiraClientFactory;
14
import org.eclipse.mylyn.internal.jira.core.JiraCorePlugin;
16
import org.eclipse.mylyn.internal.jira.core.JiraCorePlugin;
15
import org.eclipse.mylyn.internal.jira.core.JiraTaskDataHandler;
17
import org.eclipse.mylyn.internal.jira.core.JiraTaskDataHandler;
16
import org.eclipse.mylyn.internal.jira.core.service.JiraClient;
18
import org.eclipse.mylyn.internal.jira.core.service.JiraClient;
19
import org.eclipse.mylyn.internal.tasks.ui.wiki.JiraTaskEditorWikiTextPart;
17
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
20
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
18
import org.eclipse.mylyn.tasks.core.TaskRepository;
21
import org.eclipse.mylyn.tasks.core.TaskRepository;
19
import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
22
import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
Lines 22-37 Link Here
22
import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
25
import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
23
import org.eclipse.mylyn.tasks.ui.TasksUi;
26
import org.eclipse.mylyn.tasks.ui.TasksUi;
24
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
27
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
28
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
25
import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
29
import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
26
import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
30
import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
31
import org.eclipse.mylyn.tasks.ui.editors.TaskEditorPartDescriptor;
27
32
28
/**
33
/**
29
 * NOTE: This class is work in progress and currently not used.
34
 * NOTE: This class is work in progress and currently not used.
30
 * 
35
 * 
31
 * @author Steffen Pingel
36
 * @author Steffen Pingel
37
 * @author Owen
32
 */
38
 */
33
public class JiraTaskEditorPage extends AbstractTaskEditorPage {
39
public class JiraTaskEditorPage extends AbstractTaskEditorPage {
34
40
41
	@Override
42
	protected Set<TaskEditorPartDescriptor> createPartDescriptors() {
43
		Set<TaskEditorPartDescriptor> descriptors = super.createPartDescriptors();
44
45
		// remove unnecessary default editor parts
46
		for (TaskEditorPartDescriptor taskEditorPartDescriptor : descriptors) {
47
			if (taskEditorPartDescriptor.getId().equals(ID_PART_NEW_COMMENT)) {
48
				descriptors.remove(taskEditorPartDescriptor);
49
				break;
50
			}
51
		}
52
53
		descriptors.add(new TaskEditorPartDescriptor(ID_PART_NEW_COMMENT) {
54
			@Override
55
			public AbstractTaskEditorPart createPart() {
56
				return new JiraTaskEditorWikiTextPart();
57
			}
58
		}.setPath(PATH_COMMENTS));
59
60
		return descriptors;
61
	}
62
35
	public JiraTaskEditorPage(TaskEditor editor) {
63
	public JiraTaskEditorPage(TaskEditor editor) {
36
		super(editor, JiraCorePlugin.CONNECTOR_KIND);
64
		super(editor, JiraCorePlugin.CONNECTOR_KIND);
37
	}
65
	}
(-)META-INF/MANIFEST.MF (-9 / +18 lines)
Lines 5-27 Link Here
5
Bundle-Version: 3.0.0.qualifier
5
Bundle-Version: 3.0.0.qualifier
6
Bundle-Activator: org.eclipse.mylyn.internal.jira.ui.JiraUiPlugin
6
Bundle-Activator: org.eclipse.mylyn.internal.jira.ui.JiraUiPlugin
7
Bundle-Vendor: Eclipse.org
7
Bundle-Vendor: Eclipse.org
8
Require-Bundle: org.eclipse.core.resources,
8
Require-Bundle: org.eclipse.core.runtime,
9
 org.eclipse.core.runtime,
10
 org.eclipse.jface.text,
9
 org.eclipse.jface.text,
11
 org.eclipse.search,
12
 org.eclipse.ui,
10
 org.eclipse.ui,
13
 org.eclipse.ui.editors,
14
 org.eclipse.ui.forms,
11
 org.eclipse.ui.forms,
15
 org.eclipse.ui.views,
16
 org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
17
 org.eclipse.mylyn.jira.core;bundle-version="[3.0.0,4.0.0)",
12
 org.eclipse.mylyn.jira.core;bundle-version="[3.0.0,4.0.0)",
18
 org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
13
 org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
19
 org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
14
 org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
20
 org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
21
 org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
15
 org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
22
 org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)"
16
 org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
17
 org.eclipse.mylyn.tasks.ui;bundle-version="3.0.0"
23
Bundle-ActivationPolicy: lazy
18
Bundle-ActivationPolicy: lazy
24
Bundle-RequiredExecutionEnvironment: J2SE-1.5
19
Bundle-RequiredExecutionEnvironment: J2SE-1.5
25
Export-Package: org.eclipse.mylyn.internal.jira.ui;x-internal:=true,
20
Export-Package: org.eclipse.mylyn.internal.jira.ui;
21
  uses:="org.eclipse.mylyn.internal.tasks.core.deprecated,
22
   org.eclipse.jface.wizard,
23
   org.eclipse.mylyn.tasks.core,
24
   org.eclipse.jface.resource,
25
   org.eclipse.mylyn.tasks.ui,
26
   org.eclipse.mylyn.tasks.core.data,
27
   org.eclipse.ui.plugin,
28
   org.w3c.dom,
29
   org.eclipse.mylyn.internal.tasks.core,
30
   org.eclipse.swt.graphics,
31
   org.eclipse.jface.viewers,
32
   org.osgi.framework,
33
   org.eclipse.mylyn.tasks.ui.wizards",
26
 org.eclipse.mylyn.internal.jira.ui.editor;x-internal:=true,
34
 org.eclipse.mylyn.internal.jira.ui.editor;x-internal:=true,
27
 org.eclipse.mylyn.internal.jira.ui.wizards;x-internal:=true
35
 org.eclipse.mylyn.internal.jira.ui.wizards;x-internal:=true
36
Import-Package: org.eclipse.mylyn.wikitext.parser.markup

Return to bug 235222