View | Details | Raw Unified | Return to bug 153816 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/cdt/ui/CUIPlugin.java (+25 lines)
Lines 14-21 Link Here
14
import java.io.IOException;
14
import java.io.IOException;
15
import java.text.MessageFormat;
15
import java.text.MessageFormat;
16
import java.util.ArrayList;
16
import java.util.ArrayList;
17
import java.util.Collection;
18
import java.util.HashMap;
17
import java.util.HashSet;
19
import java.util.HashSet;
20
import java.util.Iterator;
18
import java.util.List;
21
import java.util.List;
22
import java.util.Map;
19
import java.util.MissingResourceException;
23
import java.util.MissingResourceException;
20
import java.util.ResourceBundle;
24
import java.util.ResourceBundle;
21
import java.util.Set;
25
import java.util.Set;
Lines 337-342 Link Here
337
	private AsmTextTools fAsmTextTools;
341
	private AsmTextTools fAsmTextTools;
338
	private ProblemMarkerManager fProblemMarkerManager;
342
	private ProblemMarkerManager fProblemMarkerManager;
339
	private BuildConsoleManager fBuildConsoleManager;
343
	private BuildConsoleManager fBuildConsoleManager;
344
	private Map fSubConsoleManagers = new HashMap();
340
	private ResourceAdapterFactory fResourceAdapterFactory;
345
	private ResourceAdapterFactory fResourceAdapterFactory;
341
	private CElementAdapterFactory fCElementAdapterFactory;
346
	private CElementAdapterFactory fCElementAdapterFactory;
342
347
Lines 416-421 Link Here
416
		return fBuildConsoleManager;
421
		return fBuildConsoleManager;
417
	}
422
	}
418
423
424
	public IBuildConsoleManager getSubConsoleManager(String name, String id, String contextId) {
425
		BuildConsoleManager manager = (BuildConsoleManager)fSubConsoleManagers.get(id);
426
		if (manager == null ) {
427
			manager = new BuildConsoleManager();
428
			fSubConsoleManagers.put(id, manager);
429
			manager.startup(name, id, contextId);
430
		}
431
		return manager;
432
	}
433
419
	/* (non-Javadoc)
434
	/* (non-Javadoc)
420
	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
435
	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
421
	 */
436
	 */
Lines 443-448 Link Here
443
		}
458
		}
444
		if (fImageDescriptorRegistry != null)
459
		if (fImageDescriptorRegistry != null)
445
			fImageDescriptorRegistry.dispose();
460
			fImageDescriptorRegistry.dispose();
461
		
462
		if (!fSubConsoleManagers.isEmpty()) {
463
			Collection x = fSubConsoleManagers.values();
464
			for (Iterator i = x.iterator(); i.hasNext(); ) {
465
				BuildConsoleManager b = (BuildConsoleManager)i.next();
466
				b.shutdown();
467
			}
468
			fSubConsoleManagers.clear();
469
		}
470
		
446
		if ( fBuildConsoleManager != null ) {
471
		if ( fBuildConsoleManager != null ) {
447
			fBuildConsoleManager.shutdown();
472
			fBuildConsoleManager.shutdown();
448
			fBuildConsoleManager = null;
473
			fBuildConsoleManager = null;
(-)src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsoleManager.java (+35 lines)
Lines 52-57 Link Here
52
	private Map fConsoleMap = new HashMap();
52
	private Map fConsoleMap = new HashMap();
53
	Color infoColor, outputColor, errorColor;
53
	Color infoColor, outputColor, errorColor;
54
	BuildConsoleStream infoStream, outputStream, errorStream;
54
	BuildConsoleStream infoStream, outputStream, errorStream;
55
	String fName, fSubMenuId, fContextMenuId;
55
56
56
	static public final int BUILD_STREAM_TYPE_INFO = 0;
57
	static public final int BUILD_STREAM_TYPE_INFO = 0;
57
	static public final int BUILD_STREAM_TYPE_OUTPUT = 1;
58
	static public final int BUILD_STREAM_TYPE_OUTPUT = 1;
Lines 199-204 Link Here
199
		CUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this);
200
		CUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this);
200
	}
201
	}
201
202
203
	public void startup(String name, String subMenuId, String contextMenuId) {
204
		infoStream = new BuildConsoleStream();
205
		outputStream = new BuildConsoleStream();
206
		errorStream = new BuildConsoleStream();
207
		fName = name;
208
		fSubMenuId = subMenuId;
209
		fContextMenuId = contextMenuId;
210
211
		runUI(new Runnable() {
212
213
			/*
214
			 * (non-Javadoc)
215
			 * 
216
			 * @see java.lang.Runnable#run()
217
			 */
218
			public void run() {
219
				// install colors
220
				fConsole = new BuildConsole(BuildConsoleManager.this, fName, fSubMenuId, fContextMenuId);
221
				ConsolePlugin.getDefault().getConsoleManager().addConsoles(new org.eclipse.ui.console.IConsole[]{fConsole});
222
				infoStream.setConsole(fConsole);
223
				infoColor = createColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_INFO_COLOR);
224
				infoStream.setColor(infoColor);
225
				outputStream.setConsole(fConsole);
226
				outputColor = createColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_OUTPUT_COLOR);
227
				outputStream.setColor(outputColor);
228
				errorStream.setConsole(fConsole);
229
				errorColor = createColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_ERROR_COLOR);
230
				errorStream.setColor(errorColor);
231
			}
232
		});
233
		CUIPlugin.getWorkspace().addResourceChangeListener(this);
234
		CUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this);
235
	}
236
202
	/*
237
	/*
203
	 * (non-Javadoc)
238
	 * (non-Javadoc)
204
	 * 
239
	 * 
(-)src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsole.java (-2 / +14 lines)
Lines 26-43 Link Here
26
	public static final String P_STREAM_COLOR = CUIPlugin.PLUGIN_ID  + ".CONSOLE_P_STREAM_COLOR";	 //$NON-NLS-1$
26
	public static final String P_STREAM_COLOR = CUIPlugin.PLUGIN_ID  + ".CONSOLE_P_STREAM_COLOR";	 //$NON-NLS-1$
27
27
28
	private IBuildConsoleManager fConsoleManager;
28
	private IBuildConsoleManager fConsoleManager;
29
	private String fConsoleName;
30
	private String fConsoleId;
31
	private String fContextId;
29
32
30
	public BuildConsole(IBuildConsoleManager manager) {
33
	public BuildConsole(IBuildConsoleManager manager) {
31
		super(ConsoleMessages.getString("BuildConsole.buildConsole"), CPluginImages.DESC_BUILD_CONSOLE); //$NON-NLS-1$
34
		super(ConsoleMessages.getString("BuildConsole.buildConsole"), CPluginImages.DESC_BUILD_CONSOLE); //$NON-NLS-1$
32
		fConsoleManager = manager;
35
		fConsoleManager = manager;
36
		fConsoleName = ConsoleMessages.getString("BuildConsole.buildConsole"); //$NON-NLS-1$
37
	}
38
39
	public BuildConsole(IBuildConsoleManager manager, String name, String id, String contextId) {
40
		super(name, CPluginImages.DESC_BUILD_CONSOLE); //$NON-NLS-1$
41
		fConsoleManager = manager;
42
		fConsoleName = name;
43
		fConsoleId = id;
44
		fContextId = contextId;
33
	}
45
	}
34
46
35
	public IPageBookViewPage createPage(IConsoleView view) {
47
	public IPageBookViewPage createPage(IConsoleView view) {
36
		return new BuildConsolePage(view, this);
48
		return new BuildConsolePage(view, this, fConsoleId, fContextId);
37
	}
49
	}
38
50
39
	public void setTitle(IProject project) {
51
	public void setTitle(IProject project) {
40
		String title = ConsoleMessages.getString("BuildConsole.buildConsole"); //$NON-NLS-1$
52
		String title = fConsoleName;
41
		if (project != null) {
53
		if (project != null) {
42
			title += " [" + project.getName() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
54
			title += " [" + project.getName() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
43
		}
55
		}
(-)src/org/eclipse/cdt/internal/ui/buildconsole/BuildConsolePage.java (-2 / +19 lines)
Lines 85-90 Link Here
85
85
86
	private BuildConsole fConsole;
86
	private BuildConsole fConsole;
87
	private IConsoleView fConsoleView;
87
	private IConsoleView fConsoleView;
88
	private String fMenuId;
89
	private String fContextMenuId;
88
	private BuildConsoleViewer fViewer;
90
	private BuildConsoleViewer fViewer;
89
	private IProject fProject;
91
	private IProject fProject;
90
92
Lines 109-118 Link Here
109
	/**
111
	/**
110
	 * @param view
112
	 * @param view
111
	 * @param console
113
	 * @param console
114
	 * @param menuId
115
	 */
116
	public BuildConsolePage(IConsoleView view, BuildConsole console, 
117
			String menuId, String contextMenuId) {
118
		fConsole = console;
119
		fConsoleView = view;
120
		fMenuId = menuId;
121
		fContextMenuId = contextMenuId;
122
	}
123
124
	/**
125
	 * @param view
126
	 * @param console
112
	 */
127
	 */
113
	public BuildConsolePage(IConsoleView view, BuildConsole console) {
128
	public BuildConsolePage(IConsoleView view, BuildConsole console) {
114
		fConsole = console;
129
		fConsole = console;
115
		fConsoleView = view;
130
		fConsoleView = view;
131
		fMenuId = "#MessageConsole";
132
		fContextMenuId = "CConsole";
116
	}
133
	}
117
134
118
	protected void setProject(IProject project) {
135
	protected void setProject(IProject project) {
Lines 176-182 Link Here
176
	public void createControl(Composite parent) {
193
	public void createControl(Composite parent) {
177
		fViewer = new BuildConsoleViewer(parent);
194
		fViewer = new BuildConsoleViewer(parent);
178
195
179
		MenuManager manager = new MenuManager("#MessageConsole", "#MessageConsole"); //$NON-NLS-1$ //$NON-NLS-2$
196
		MenuManager manager = new MenuManager("#MessageConsole", fMenuId); //$NON-NLS-1$ //$NON-NLS-2$
180
		manager.setRemoveAllWhenShown(true);
197
		manager.setRemoveAllWhenShown(true);
181
		manager.addMenuListener(new IMenuListener() {
198
		manager.addMenuListener(new IMenuListener() {
182
199
Lines 187-193 Link Here
187
		fMenu = manager.createContextMenu(getControl());
204
		fMenu = manager.createContextMenu(getControl());
188
		getControl().setMenu(fMenu);
205
		getControl().setMenu(fMenu);
189
		IPageSite site = getSite();
206
		IPageSite site = getSite();
190
		site.registerContextMenu(CUIPlugin.PLUGIN_ID + ".CBuildConole", manager, getViewer()); //$NON-NLS-1$
207
		site.registerContextMenu(CUIPlugin.PLUGIN_ID + "." + fContextMenuId, manager, getViewer()); //$NON-NLS-1$
191
		site.setSelectionProvider(getViewer());
208
		site.setSelectionProvider(getViewer());
192
		createActions();
209
		createActions();
193
		configureToolBar(site.getActionBars().getToolBarManager());
210
		configureToolBar(site.getActionBars().getToolBarManager());

Return to bug 153816