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 237500 | Differences between
and this patch

Collapse All | Expand All

(-)plugin.xml (+14 lines)
Lines 364-369 Link Here
364
            id="org.eclipse.mylyn.sandbox..pageFactories.extensibleBugzillaTaskEditor">
364
            id="org.eclipse.mylyn.sandbox..pageFactories.extensibleBugzillaTaskEditor">
365
      </pageFactory>     
365
      </pageFactory>     
366
      </extension>
366
      </extension>
367
   <extension
368
         point="org.eclipse.ui.menus">
369
      <menuContribution
370
            locationURI="popup:org.eclipse.mylyn.tasks.ui.views.repositories?after=additions">
371
         <menu
372
               label="WikiText Editor Style"
373
               tooltip="Select editor style">
374
            <dynamic
375
                  class="org.eclipse.mylyn.internal.sandbox.ui.editors.EditorStyleContributionItems"
376
                  id="org.eclipse.mylyn.sandbox.ui.editorStyleDropDown">
377
            </dynamic>
378
         </menu>
379
      </menuContribution>
380
   </extension>
367
   
381
   
368
   
382
   
369
   
383
   
(-)src/org/eclipse/mylyn/internal/sandbox/ui/editors/EditorStyleContributionItems.java (+101 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.sandbox.ui.editors;
10
11
import java.util.ArrayList;
12
import java.util.List;
13
import java.util.SortedSet;
14
15
import org.eclipse.jface.action.Action;
16
import org.eclipse.jface.action.ActionContributionItem;
17
import org.eclipse.jface.action.IContributionItem;
18
import org.eclipse.mylyn.internal.sandbox.ui.editors.TaskEditorExtensions.RegisteredTaskEditorExtension;
19
import org.eclipse.mylyn.tasks.core.TaskRepository;
20
import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
21
import org.eclipse.ui.actions.CompoundContributionItem;
22
23
/**
24
 * Contribute a popup menu which can be used to select editor styles in TaskRepositoriesView,
25
 * 
26
 * @author Jingwen Ou
27
 */
28
public class EditorStyleContributionItems extends CompoundContributionItem {
29
30
	private class EditorStyleContributionAction extends Action {
31
32
		private final RegisteredTaskEditorExtension editorExtension;
33
34
		public EditorStyleContributionAction(RegisteredTaskEditorExtension editorExtension) {
35
			super(editorExtension.getName());
36
			setId(editorExtension.getId() + ".action");
37
			this.editorExtension = editorExtension;
38
		}
39
40
		// default constructor only needs specifying id and name
41
		public EditorStyleContributionAction(String id, String name) {
42
			super(name);
43
			setId(id);
44
			this.editorExtension = null;
45
		}
46
47
		@Override
48
		public void run() {
49
			if (taskRepository != null) {
50
				TaskEditorExtensions.setTaskEditorExtensionId(taskRepository,
51
						editorExtension != null ? editorExtension.getId() : "");
52
				setChecked(true);
53
			}
54
		}
55
	}
56
57
	private final TaskRepository taskRepository;
58
59
	public EditorStyleContributionItems() {
60
		this(null);
61
	}
62
63
	public EditorStyleContributionItems(String id) {
64
		// returns the selecting TaskRepository
65
		this(id, TasksUiUtil.getSelectedRepository());
66
	}
67
68
	public EditorStyleContributionItems(String id, TaskRepository taskRepository) {
69
		super(id);
70
		this.taskRepository = taskRepository;
71
	}
72
73
	@Override
74
	protected IContributionItem[] getContributionItems() {
75
		List<IContributionItem> items = new ArrayList<IContributionItem>();
76
77
		// TODO: use TaskEditorExtensions.addTaskEditorExtension() to add a "null" task editor extension indicating the markup language can be turned off
78
		// so that we don't have to treat "None" as a special action, no style is also a style...
79
		EditorStyleContributionAction noEditorStyleContributionAction = new EditorStyleContributionAction(
80
				"org.eclipse.mylyn.sandbox.ui.action.none", "None");
81
		items.add(new ActionContributionItem(noEditorStyleContributionAction));
82
		String defaultExtensionId = TaskEditorExtensions.getTaskEditorExtensionId(taskRepository);
83
		if (defaultExtensionId == null || defaultExtensionId.equals("")) {
84
			noEditorStyleContributionAction.setChecked(true);
85
		}
86
87
		SortedSet<RegisteredTaskEditorExtension> allEditorExtensions = TaskEditorExtensions.getTaskEditorExtensions();
88
89
		for (RegisteredTaskEditorExtension editorExtension : allEditorExtensions) {
90
			Action editorStyleAction = new EditorStyleContributionAction(editorExtension);
91
			ActionContributionItem item = new ActionContributionItem(editorStyleAction);
92
			if (editorExtension.getId().equals(defaultExtensionId)) {
93
				editorStyleAction.setChecked(true);
94
			}
95
96
			items.add(item);
97
		}
98
99
		return items.toArray(new IContributionItem[items.size()]);
100
	}
101
}

Return to bug 237500