mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-09 17:25:38 +02:00
bug 340995: CDT Global Build Console created for every CDT CBuildConsole extension
This commit is contained in:
parent
3dcd2a7c17
commit
49f89720a9
17 changed files with 344 additions and 189 deletions
|
@ -100,7 +100,7 @@ public class TargetBuild {
|
|||
|
||||
static public void buildTargets(Shell shell, final IMakeTarget[] targets) {
|
||||
// Setup the global build console
|
||||
CUIPlugin.getDefault().getConsoleManager().startGlobalConsole();
|
||||
CUIPlugin.getDefault().startGlobalConsole();
|
||||
|
||||
saveAllResources(targets);
|
||||
Job targetJob = new Job(MakeUIPlugin.getResourceString("TargetBuild.backgroundTask.name")) { //$NON-NLS-1$
|
||||
|
|
|
@ -38,7 +38,7 @@ public class BuildAllConfigurationsAction implements IObjectActionDelegate {
|
|||
|
||||
public void run(IAction action) {
|
||||
// Setup the global build console
|
||||
CUIPlugin.getDefault().getConsoleManager().startGlobalConsole();
|
||||
CUIPlugin.getDefault().startGlobalConsole();
|
||||
|
||||
for (IProject project : projects) {
|
||||
ICProjectDescription prjd = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
|
|
|
@ -69,7 +69,7 @@ public class BuildConfigurationsJob extends Job {
|
|||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
// Setup the global build console
|
||||
CUIPlugin.getDefault().getConsoleManager().startGlobalConsole();
|
||||
CUIPlugin.getDefault().startGlobalConsole();
|
||||
|
||||
IConfiguration[] cfgs = new IConfiguration[cfgDescriptions.length];
|
||||
for (int i=0; i<cfgDescriptions.length; i++) {
|
||||
|
|
|
@ -38,7 +38,7 @@ public class CleanAllConfigurationsAction implements IObjectActionDelegate {
|
|||
|
||||
public void run(IAction action) {
|
||||
// Setup the global build console
|
||||
CUIPlugin.getDefault().getConsoleManager().startGlobalConsole();
|
||||
CUIPlugin.getDefault().startGlobalConsole();
|
||||
|
||||
for (IProject project : projects) {
|
||||
ICProjectDescription prjd = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
|
|
|
@ -32,6 +32,7 @@ import org.eclipse.cdt.ui.tests.BaseUITestCase;
|
|||
import org.eclipse.cdt.internal.ui.buildconsole.BuildConsole;
|
||||
import org.eclipse.cdt.internal.ui.buildconsole.BuildConsolePage;
|
||||
import org.eclipse.cdt.internal.ui.buildconsole.ConsoleMessages;
|
||||
import org.eclipse.cdt.internal.ui.buildconsole.GlobalBuildConsoleManager;
|
||||
|
||||
/**
|
||||
* BuildConsoleTests.
|
||||
|
@ -113,8 +114,7 @@ public class BuildConsoleTests extends BaseUITestCase {
|
|||
}
|
||||
|
||||
public void testGlobalCdtConsole() throws IOException, CoreException {
|
||||
IBuildConsoleManager mgr = CUIPlugin.getDefault().getConsoleManager();
|
||||
IConsole globalConsole = mgr.getGlobalConsole();
|
||||
IConsole globalConsole = GlobalBuildConsoleManager.getGlobalConsole();
|
||||
assertNotNull(globalConsole);
|
||||
|
||||
// the console view
|
||||
|
|
|
@ -13,10 +13,12 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.buildconsole;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.core.filesystem.URIUtil;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IResourceChangeEvent;
|
||||
|
@ -27,7 +29,6 @@ import org.eclipse.core.runtime.IPath;
|
|||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.ListenerList;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.preferences.InstanceScope;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.PreferenceConverter;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
|
@ -45,7 +46,6 @@ import org.eclipse.ui.PartInitException;
|
|||
import org.eclipse.ui.console.ConsolePlugin;
|
||||
import org.eclipse.ui.console.IConsoleConstants;
|
||||
import org.eclipse.ui.console.IConsoleView;
|
||||
import org.eclipse.ui.preferences.ScopedPreferenceStore;
|
||||
import org.osgi.service.prefs.Preferences;
|
||||
|
||||
import org.eclipse.cdt.core.resources.IConsole;
|
||||
|
@ -59,24 +59,17 @@ import org.eclipse.cdt.internal.core.LocalProjectScope;
|
|||
import org.eclipse.cdt.internal.ui.preferences.BuildConsolePreferencePage;
|
||||
|
||||
public class BuildConsoleManager implements IBuildConsoleManager, IResourceChangeListener, IPropertyChangeListener {
|
||||
private static final String QUALIFIER = CUIPlugin.PLUGIN_ID;
|
||||
private static final String BUILD_CONSOLE_NODE = "buildConsole"; //$NON-NLS-1$
|
||||
private static final String GLOBAL_BUILD_CONSOLE_NODE = "globalBuildConsole"; //$NON-NLS-1$
|
||||
/*package*/ static final String PREF_QUALIFIER = CUIPlugin.PLUGIN_ID;
|
||||
public static final String KEY_KEEP_LOG = "keepLog"; //$NON-NLS-1$
|
||||
public static final String KEY_LOG_LOCATION = "logLocation"; //$NON-NLS-1$
|
||||
public static final boolean CONSOLE_KEEP_LOG_DEFAULT = true;
|
||||
private static final String GLOBAL_LOG_FILE = "global-build.log"; //$NON-NLS-1$
|
||||
|
||||
private static final String BUILD_CONSOLE_NODE = "buildConsole"; //$NON-NLS-1$
|
||||
private static final String PROJECT_LOG_EXT = ".build.log"; //$NON-NLS-1$
|
||||
|
||||
private ListenerList listeners = new ListenerList();
|
||||
/** UI console object in which per-project consoles are shown */
|
||||
private BuildConsole fConsole;
|
||||
/**
|
||||
* UI console object in which the global console is shown (a concatenation of all the
|
||||
* per project consoles)
|
||||
*/
|
||||
private BuildConsole fGlobalConsole;
|
||||
private BuildConsolePartitioner fGlobalConsolePartitioner;
|
||||
private Map<IProject, BuildConsolePartitioner> fConsoleMap = new HashMap<IProject, BuildConsolePartitioner>();
|
||||
private Color infoColor;
|
||||
private Color outputColor;
|
||||
|
@ -117,10 +110,13 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
static public final int BUILD_STREAM_TYPE_OUTPUT = 1;
|
||||
static public final int BUILD_STREAM_TYPE_ERROR = 2;
|
||||
|
||||
static public final String DEFAULT_CONTEXT_MENU_ID = CUIPlugin.PLUGIN_ID + ".CBuildConole"; //$NON-NLS-1$
|
||||
static public final String DEFAULT_CONTEXT_MENU_ID = CUIPlugin.PLUGIN_ID + ".CDTBuildConsole"; //$NON-NLS-1$
|
||||
|
||||
private IProject fLastProject;
|
||||
|
||||
/**
|
||||
* Default constructor.
|
||||
*/
|
||||
public BuildConsoleManager() {
|
||||
}
|
||||
|
||||
|
@ -169,7 +165,7 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
}
|
||||
if (consoleView instanceof IConsoleView) {
|
||||
if (BuildConsole.getCurrentPage() == null)
|
||||
((IConsoleView)consoleView).display(fGlobalConsole);
|
||||
((IConsoleView)consoleView).display(fConsole);
|
||||
else
|
||||
((IConsoleView)consoleView).display(BuildConsole.getCurrentPage().getConsole());
|
||||
}
|
||||
|
@ -212,6 +208,9 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Release resources allocated on {@link #startup(String, String, URL)}.
|
||||
*/
|
||||
public void shutdown() {
|
||||
if (infoColor != null) {
|
||||
infoColor.dispose();
|
||||
|
@ -223,7 +222,7 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
problemInfoBackgroundColor.dispose();
|
||||
problemHighlightedColor.dispose();
|
||||
}
|
||||
ConsolePlugin.getDefault().getConsoleManager().removeConsoles(new org.eclipse.ui.console.IConsole[]{fGlobalConsole, fConsole});
|
||||
ConsolePlugin.getDefault().getConsoleManager().removeConsoles(new org.eclipse.ui.console.IConsole[]{fConsole});
|
||||
CUIPlugin.getWorkspace().removeResourceChangeListener(this);
|
||||
CUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(this);
|
||||
}
|
||||
|
@ -239,7 +238,38 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new build console. Subclasses may override to create a specialized
|
||||
* console.
|
||||
*
|
||||
* @param name - name of console to appear in the list of consoles in context menu
|
||||
* in the Console view.
|
||||
* @param contextId - context menu id in the Console view.
|
||||
* @param iconUrl - a {@link URL} of the icon for the context menu of the Console
|
||||
* view. The url is expected to point to an image in eclipse OSGi bundle.
|
||||
* {@code iconUrl} can be <b>null</b>, in that case the default image is used.
|
||||
* @return newly created build console.
|
||||
*/
|
||||
protected BuildConsole createBuildConsole(String name, String contextId, final URL iconUrl) {
|
||||
return new BuildConsole(this, name, contextId, iconUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Start console activities. This will create a new console in the Console view,
|
||||
* create streams, color resources, register listeners etc.
|
||||
* Most work is done in UI thread.
|
||||
*
|
||||
* Use {@link #shutdown()} after the console activity ends.
|
||||
*
|
||||
* @param name - name of the console to appear in the Console view.
|
||||
* @param contextId - context menu id in the Console view.
|
||||
* @param iconUrl - icon to show in the context menu.
|
||||
*/
|
||||
public void startup(String name, String contextId, final URL iconUrl) {
|
||||
// Ensure global console is initialized before any other build console
|
||||
if (!(this instanceof GlobalBuildConsoleManager))
|
||||
GlobalBuildConsoleManager.startup();
|
||||
|
||||
infoStream = new BuildConsoleStreamDecorator();
|
||||
outputStream = new BuildConsoleStreamDecorator();
|
||||
errorStream = new BuildConsoleStreamDecorator();
|
||||
|
@ -254,10 +284,10 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
* @see java.lang.Runnable#run()
|
||||
*/
|
||||
public void run() {
|
||||
// install colors
|
||||
fGlobalConsole = new GlobalBuildConsole(BuildConsoleManager.this, fName, null);
|
||||
fConsole = new BuildConsole(BuildConsoleManager.this, fName, fContextMenuId, iconUrl);
|
||||
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new org.eclipse.ui.console.IConsole[]{fGlobalConsole, fConsole});
|
||||
// add console to the Console view
|
||||
fConsole = createBuildConsole(fName, fContextMenuId, iconUrl);
|
||||
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new org.eclipse.ui.console.IConsole[]{fConsole});
|
||||
|
||||
infoStream.setConsole(fConsole);
|
||||
infoColor = createColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_INFO_COLOR);
|
||||
infoStream.setColor(infoColor);
|
||||
|
@ -269,7 +299,6 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
errorStream.setColor(errorColor);
|
||||
backgroundColor = createBackgroundColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_BACKGROUND_COLOR);
|
||||
fConsole.setBackground(backgroundColor);
|
||||
fGlobalConsole.setBackground(backgroundColor);
|
||||
problemHighlightedColor = createColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_PROBLEM_HIGHLIGHTED_COLOR);
|
||||
problemErrorBackgroundColor = createBackgroundColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_PROBLEM_BACKGROUND_COLOR);
|
||||
problemWarningBackgroundColor = createBackgroundColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_PROBLEM_WARNING_BACKGROUND_COLOR);
|
||||
|
@ -306,7 +335,6 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
} else if (property.equals(BuildConsolePreferencePage.PREF_BUILDCONSOLE_BACKGROUND_COLOR)) {
|
||||
Color newColor = createBackgroundColor(CUIPlugin.getStandardDisplay(), BuildConsolePreferencePage.PREF_BUILDCONSOLE_BACKGROUND_COLOR);
|
||||
fConsole.setBackground(newColor);
|
||||
fGlobalConsole.setBackground(newColor);
|
||||
backgroundColor.dispose();
|
||||
backgroundColor = newColor;
|
||||
} else if (property.equals(BuildConsolePreferencePage.PREF_BUILDCONSOLE_PROBLEM_HIGHLIGHTED_COLOR)) {
|
||||
|
@ -381,28 +409,26 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the console for the project, or <code>null</code> if none.
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public IConsole getConsole(IProject project) {
|
||||
return new MultiBuildConsoleAdapter(getProjectConsole(project), getGlobalConsole());
|
||||
return new MultiBuildConsoleAdapter(getProjectConsole(project), GlobalBuildConsoleManager.getGlobalConsole());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the console for the specified project
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return the console for the specified project. Returns {@code null}
|
||||
* if project is {@code null} or not accessible.
|
||||
*/
|
||||
public IConsole getProjectConsole(IProject project) {
|
||||
Assert.isNotNull(project);
|
||||
if (project==null || !project.isAccessible())
|
||||
return null;
|
||||
|
||||
fLastProject = project;
|
||||
return getProjectConsolePartioner(project).getConsole();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the global build console
|
||||
*/
|
||||
public IConsole getGlobalConsole() {
|
||||
return getGlobalConsolePartitioner().getConsole();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
@ -424,31 +450,6 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
return partitioner;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the partitioner for the global build console
|
||||
*/
|
||||
private BuildConsolePartitioner getGlobalConsolePartitioner() {
|
||||
if (fGlobalConsolePartitioner == null)
|
||||
fGlobalConsolePartitioner = new BuildConsolePartitioner(this);
|
||||
return fGlobalConsolePartitioner;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the global console; called at the start of the build.
|
||||
* Clears the contents of the console and sets up the log output stream.
|
||||
*/
|
||||
public void startGlobalConsole() {
|
||||
if (BuildConsolePreferencePage.isClearBuildConsole())
|
||||
getGlobalConsolePartitioner().appendToDocument("", null, null); //$NON-NLS-1$
|
||||
getGlobalConsolePartitioner().setStreamOpened();
|
||||
}
|
||||
|
||||
public void stopGlobalConsole() {
|
||||
// Doesn't do anything currently. This would be a cleaner place to close the global console
|
||||
// log, but there is nowhere in CDT that can invoke it at the end of the entire build.
|
||||
// Instead, the log is repeatedly closed and opened for append by each project build.
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the document backing the build console for the specified project
|
||||
*/
|
||||
|
@ -457,13 +458,6 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
return getProjectConsolePartioner(project).getDocument();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the document backing the global build console
|
||||
*/
|
||||
public IDocument getGlobalConsoleDocument() {
|
||||
return getGlobalConsolePartitioner().getDocument();
|
||||
}
|
||||
|
||||
public void addConsoleListener(IBuildConsoleListener listener) {
|
||||
listeners.add(listener);
|
||||
}
|
||||
|
@ -473,35 +467,50 @@ public class BuildConsoleManager implements IBuildConsoleManager, IResourceChang
|
|||
}
|
||||
|
||||
/**
|
||||
* @return logging preferences for a given project or for the workspace.
|
||||
* @param project to get logging preferences for; or null for the workspace.
|
||||
* @return logging preferences for a given project.
|
||||
* @param project to get logging preferences for, can't be {@code null}.
|
||||
*/
|
||||
public static Preferences getBuildLogPreferences(IProject project) {
|
||||
if (project == null)
|
||||
return InstanceScope.INSTANCE.getNode(QUALIFIER).node(GLOBAL_BUILD_CONSOLE_NODE);
|
||||
else
|
||||
return new LocalProjectScope(project).getNode(QUALIFIER).node(BUILD_CONSOLE_NODE);
|
||||
public Preferences getBuildLogPreferences(IProject project) {
|
||||
return new LocalProjectScope(project).getNode(PREF_QUALIFIER).node(BUILD_CONSOLE_NODE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return logging preference store for a given project; or for the workspace.
|
||||
* @param project to get logging preferences for; or null for the workspace.
|
||||
* @return default location of logs for a project.
|
||||
* @param project to get default log location for, can't be {@code null}.
|
||||
*/
|
||||
public static IPreferenceStore getBuildLogPreferenceStore(IProject project) {
|
||||
if (project == null)
|
||||
return new ScopedPreferenceStore(InstanceScope.INSTANCE, QUALIFIER + "/" + GLOBAL_BUILD_CONSOLE_NODE); //$NON-NLS-1$
|
||||
else
|
||||
return new ScopedPreferenceStore(new LocalProjectScope(project), QUALIFIER + "/" + BUILD_CONSOLE_NODE); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/**
|
||||
* @return default location of logs for a project or for the workspace.
|
||||
* @param project to get default log location for; or null for the workspace.
|
||||
*/
|
||||
public static String getDefaultConsoleLogLocation(IProject project) {
|
||||
String name = project == null ? GLOBAL_LOG_FILE : project.getName() + PROJECT_LOG_EXT;
|
||||
IPath defaultLogLocation = CUIPlugin.getDefault().getStateLocation().append(name);
|
||||
public String getDefaultConsoleLogLocation(IProject project) {
|
||||
IPath defaultLogLocation = CUIPlugin.getDefault().getStateLocation().append(project.getName() + PROJECT_LOG_EXT);
|
||||
return defaultLogLocation.toOSString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Where the log for per-project console is kept.
|
||||
*
|
||||
* @param project - the project. Cannot be {@code null}.
|
||||
* @return {@link URI} of build log or {@code null} if not available.
|
||||
*/
|
||||
public URI getLogURI(IProject project) {
|
||||
Assert.isNotNull(project);
|
||||
|
||||
if (fContextMenuId!=DEFAULT_CONTEXT_MENU_ID)
|
||||
return null;
|
||||
|
||||
URI logURI = null;
|
||||
|
||||
Preferences prefs = getBuildLogPreferences(project);
|
||||
boolean keepLog = prefs.getBoolean(KEY_KEEP_LOG, CONSOLE_KEEP_LOG_DEFAULT);
|
||||
if (keepLog) {
|
||||
String strLocation;
|
||||
strLocation = prefs.get(KEY_LOG_LOCATION, getDefaultConsoleLogLocation(project));
|
||||
if (strLocation.trim().length()>0) {
|
||||
logURI = URIUtil.toURI(strLocation);
|
||||
}
|
||||
if (logURI==null) {
|
||||
IStatus status= new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID,"Can't determine URI for location=["+strLocation+"]"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
CUIPlugin.log(status);
|
||||
}
|
||||
}
|
||||
return logURI;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -163,15 +163,8 @@ public class BuildConsolePage extends Page
|
|||
IProject project = getProject();
|
||||
if (project != null) {
|
||||
IBuildConsoleManager consoleManager = getConsole().getConsoleManager();
|
||||
IDocument document;
|
||||
IConsole console;
|
||||
if (getConsole() instanceof GlobalBuildConsole) {
|
||||
document = consoleManager.getGlobalConsoleDocument();
|
||||
console = consoleManager.getGlobalConsole();
|
||||
} else {
|
||||
document = consoleManager.getConsoleDocument(project);
|
||||
console = consoleManager.getProjectConsole(project);
|
||||
}
|
||||
IDocument document = consoleManager.getConsoleDocument(project);
|
||||
IConsole console = consoleManager.getProjectConsole(project);
|
||||
getViewer().setDocument(document);
|
||||
if (console instanceof BuildConsolePartitioner) {
|
||||
BuildConsolePartitioner par = (BuildConsolePartitioner)console;
|
||||
|
@ -563,12 +556,7 @@ public class BuildConsolePage extends Page
|
|||
* Get the current CDT IConsole being displayed on the page
|
||||
*/
|
||||
private IConsole getCurrentConsole() {
|
||||
BuildConsoleManager consoleManager = (BuildConsoleManager)CUIPlugin.getDefault().getConsoleManager();
|
||||
if (getConsole() instanceof GlobalBuildConsole)
|
||||
return consoleManager.getGlobalConsole();
|
||||
else if (getProject() == null)
|
||||
return null;
|
||||
else
|
||||
IBuildConsoleManager consoleManager = fConsole.getConsoleManager();
|
||||
return consoleManager.getProjectConsole(getProject());
|
||||
}
|
||||
|
||||
|
|
|
@ -23,12 +23,9 @@ import java.util.Vector;
|
|||
|
||||
import org.eclipse.core.filesystem.EFS;
|
||||
import org.eclipse.core.filesystem.IFileStore;
|
||||
import org.eclipse.core.filesystem.URIUtil;
|
||||
import org.eclipse.core.resources.IMarker;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.DocumentEvent;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
|
@ -41,7 +38,6 @@ import org.eclipse.jface.util.IPropertyChangeListener;
|
|||
import org.eclipse.jface.util.PropertyChangeEvent;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.ui.console.ConsolePlugin;
|
||||
import org.osgi.service.prefs.Preferences;
|
||||
|
||||
import org.eclipse.cdt.core.ConsoleOutputStream;
|
||||
import org.eclipse.cdt.core.ProblemMarkerInfo;
|
||||
|
@ -209,27 +205,6 @@ public class BuildConsolePartitioner
|
|||
asyncProcessQueue();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {@link URI} of build log or {@code null} if not available.
|
||||
*/
|
||||
static private URI getLogURI(IProject project) {
|
||||
URI logURI = null;
|
||||
|
||||
Preferences prefs = BuildConsoleManager.getBuildLogPreferences(project);
|
||||
boolean keepLog = prefs.getBoolean(BuildConsoleManager.KEY_KEEP_LOG, BuildConsoleManager.CONSOLE_KEEP_LOG_DEFAULT);
|
||||
if (keepLog) {
|
||||
String strLocation = prefs.get(BuildConsoleManager.KEY_LOG_LOCATION, BuildConsoleManager.getDefaultConsoleLogLocation(project));
|
||||
if (strLocation.trim().length()>0) {
|
||||
logURI = URIUtil.toURI(strLocation);
|
||||
}
|
||||
if (logURI==null) {
|
||||
IStatus status= new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID,"Can't determine URI for location=["+strLocation+"]"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
CUIPlugin.log(status);
|
||||
}
|
||||
}
|
||||
return logURI;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the new text to the document.
|
||||
*
|
||||
|
@ -308,7 +283,7 @@ public class BuildConsolePartitioner
|
|||
* @param append Set to true if the log should be opened for appending, false for overwriting.
|
||||
*/
|
||||
private void logOpen(boolean append) {
|
||||
fLogURI = getLogURI(fProject);
|
||||
fLogURI = fManager.getLogURI(fProject);
|
||||
if (fLogURI!=null) {
|
||||
try {
|
||||
IFileStore logStore = EFS.getStore(fLogURI);
|
||||
|
|
|
@ -48,19 +48,13 @@ public class CopyBuildLogAction extends Action {
|
|||
|
||||
@Override
|
||||
public void run() {
|
||||
IBuildConsoleManager consoleManager = CUIPlugin.getDefault().getConsoleManager();
|
||||
IConsole console;
|
||||
if (fConsolePage.getConsole() instanceof GlobalBuildConsole)
|
||||
console = consoleManager.getGlobalConsole();
|
||||
else {
|
||||
IBuildConsoleManager consoleManager = fConsolePage.getConsole().getConsoleManager();
|
||||
IProject project = fConsolePage.getProject();
|
||||
if (project == null || !project.isAccessible())
|
||||
return;
|
||||
console = consoleManager.getProjectConsole(project);
|
||||
}
|
||||
IConsole console = consoleManager.getProjectConsole(project);
|
||||
|
||||
Shell shell = Display.getCurrent().getActiveShell();
|
||||
|
||||
if (console instanceof BuildConsolePartitioner) {
|
||||
Shell shell = Display.getCurrent().getActiveShell();
|
||||
URI srcURI = ((BuildConsolePartitioner)console).getLogURI();
|
||||
if (srcURI==null) {
|
||||
MessageDialog.openWarning(shell, ConsoleMessages.CopyLog_UnavailableLog,
|
||||
|
@ -107,6 +101,9 @@ public class CopyBuildLogAction extends Action {
|
|||
ResourcesUtil.refreshWorkspaceFiles(destURI);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
MessageDialog.openWarning(shell, ConsoleMessages.CopyLog_UnavailableLog,
|
||||
ConsoleMessages.CopyLog_BuildNotLogged);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,16 +10,17 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.buildconsole;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
import org.eclipse.cdt.ui.IBuildConsoleManager;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
|
||||
/**
|
||||
* Customised BuildConsole for the global console that displays its title differently
|
||||
* Customized BuildConsole for the global console that displays its title differently
|
||||
*/
|
||||
public class GlobalBuildConsole extends BuildConsole {
|
||||
public GlobalBuildConsole(IBuildConsoleManager manager, String name, String id) {
|
||||
super(manager, name, id);
|
||||
setName(ConsoleMessages.BuildConsole_GlobalConsole);
|
||||
public GlobalBuildConsole(IBuildConsoleManager manager, String name, String contextId, URL iconUrl) {
|
||||
super(manager, name, contextId, iconUrl);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,191 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2011 Jeff Johnston (Red Hat Inc.) 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
|
||||
*
|
||||
* Contributors:
|
||||
* Jeff Johnston (Red Hat Inc.), Andrew Gvozdev - initial implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.buildconsole;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
|
||||
import org.eclipse.core.filesystem.URIUtil;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.preferences.InstanceScope;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.ui.preferences.ScopedPreferenceStore;
|
||||
import org.osgi.service.prefs.Preferences;
|
||||
|
||||
import org.eclipse.cdt.core.resources.IConsole;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.preferences.BuildConsolePreferencePage;
|
||||
|
||||
/**
|
||||
* Build console manager managing the global CDT build console.
|
||||
* Singleton.
|
||||
*
|
||||
*/
|
||||
public class GlobalBuildConsoleManager extends BuildConsoleManager {
|
||||
private static final String GLOBAL_BUILD_CONSOLE_NODE = "globalBuildConsole"; //$NON-NLS-1$
|
||||
private static final String GLOBAL_LOG_FILE = "global-build.log"; //$NON-NLS-1$
|
||||
|
||||
private static final String GLOBAL_CONTEXT_MENU_ID = CUIPlugin.PLUGIN_ID + ".CDTGlobalBuildConsole"; //$NON-NLS-1$
|
||||
|
||||
/** Singleton instance */
|
||||
private static GlobalBuildConsoleManager INSTANCE = null;
|
||||
private static BuildConsolePartitioner fGlobalConsolePartitioner = null;
|
||||
|
||||
/**
|
||||
* Default constructor is private. The only instance will be created on
|
||||
* access of static methods and assigned to {@link #INSTANCE}.
|
||||
*/
|
||||
private GlobalBuildConsoleManager() {
|
||||
// startup is in the constructor to ensure starting only once
|
||||
startup(ConsoleMessages.BuildConsole_GlobalConsole, GLOBAL_CONTEXT_MENU_ID, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return get instance creating one if necessary.
|
||||
*/
|
||||
private static GlobalBuildConsoleManager getInstance() {
|
||||
if (INSTANCE==null)
|
||||
INSTANCE = new GlobalBuildConsoleManager();
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return get global console partitioner creating one if necessary.
|
||||
*/
|
||||
private static BuildConsolePartitioner getConsolePartitioner() {
|
||||
if (fGlobalConsolePartitioner==null) {
|
||||
fGlobalConsolePartitioner = new BuildConsolePartitioner(getInstance());
|
||||
}
|
||||
return fGlobalConsolePartitioner;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Start the console. This will call {@link #startup(String, String, URL)}
|
||||
* to add the global console to the Console view.
|
||||
*/
|
||||
public static void startup() {
|
||||
// instantiate the INSTANCE
|
||||
getInstance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop the console and deallocate resources allocated during {@link #startup()}
|
||||
*/
|
||||
public static void stop() {
|
||||
// avoid initializing INSTANCE needlessly during shutdown
|
||||
if (INSTANCE!=null)
|
||||
INSTANCE.shutdown();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BuildConsole createBuildConsole(String name, String contextId, final URL iconUrl) {
|
||||
return new GlobalBuildConsole(this, name, contextId, iconUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the global build console.
|
||||
*/
|
||||
public static IConsole getGlobalConsole() {
|
||||
return getConsolePartitioner().getConsole();
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the global console; called at the start of the build.
|
||||
* Clears the contents of the console and sets up the log output stream.
|
||||
*/
|
||||
public static void startGlobalConsole() {
|
||||
if (BuildConsolePreferencePage.isClearBuildConsole())
|
||||
getConsolePartitioner().appendToDocument("", null, null); //$NON-NLS-1$
|
||||
getConsolePartitioner().setStreamOpened();
|
||||
}
|
||||
|
||||
/**
|
||||
* Intended to handle event after console output for the whole build including
|
||||
* referenced projects finished. Currently this event is not triggered and
|
||||
* the function does nothing.
|
||||
*/
|
||||
public static void stopGlobalConsole() {
|
||||
// Doesn't do anything currently. This would be a cleaner place to close the global console
|
||||
// log, but there is nowhere in CDT that can invoke it at the end of the entire build.
|
||||
// Instead, the log is repeatedly closed and opened for append by each project build.
|
||||
}
|
||||
|
||||
/**
|
||||
* @return logging preference store for the workspace.
|
||||
*/
|
||||
public static IPreferenceStore getBuildLogPreferenceStore() {
|
||||
return new ScopedPreferenceStore(InstanceScope.INSTANCE, PREF_QUALIFIER + "/" + GLOBAL_BUILD_CONSOLE_NODE); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/**
|
||||
* @return logging preferences for the workspace.
|
||||
*/
|
||||
public static Preferences getBuildLogPreferences() {
|
||||
return InstanceScope.INSTANCE.getNode(PREF_QUALIFIER).node(GLOBAL_BUILD_CONSOLE_NODE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return default location of logs for the workspace.
|
||||
*/
|
||||
public static String getDefaultConsoleLogLocation() {
|
||||
IPath defaultLogLocation = CUIPlugin.getDefault().getStateLocation().append(GLOBAL_LOG_FILE);
|
||||
return defaultLogLocation.toOSString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IConsole getConsole(IProject project) {
|
||||
return getGlobalConsole();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IConsole getProjectConsole(IProject project) {
|
||||
return getGlobalConsole();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IDocument getConsoleDocument(IProject project) {
|
||||
return getConsolePartitioner().getDocument();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IProject getLastBuiltProject() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {@link URI} of the global build log or {@code null} if not available.
|
||||
*/
|
||||
@Override
|
||||
public URI getLogURI(IProject project) {
|
||||
URI logURI = null;
|
||||
|
||||
Preferences prefs = getBuildLogPreferences();
|
||||
boolean keepLog = prefs.getBoolean(KEY_KEEP_LOG, CONSOLE_KEEP_LOG_DEFAULT);
|
||||
if (keepLog) {
|
||||
String strLocation = prefs.get(KEY_LOG_LOCATION, getDefaultConsoleLogLocation());
|
||||
if (strLocation.trim().length()>0) {
|
||||
logURI = URIUtil.toURI(strLocation);
|
||||
}
|
||||
if (logURI==null) {
|
||||
IStatus status= new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID,"Can't determine URI for location=["+strLocation+"]"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
CUIPlugin.log(status);
|
||||
}
|
||||
}
|
||||
return logURI;
|
||||
}
|
||||
|
||||
}
|
|
@ -18,7 +18,6 @@ import org.eclipse.ui.ISharedImages;
|
|||
import org.eclipse.ui.PlatformUI;
|
||||
|
||||
import org.eclipse.cdt.core.resources.IConsole;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.IBuildConsoleManager;
|
||||
|
||||
/**
|
||||
|
@ -45,15 +44,9 @@ public class ShowErrorAction extends Action {
|
|||
public void run() {
|
||||
super.run();
|
||||
if (isChecked()) {
|
||||
IBuildConsoleManager consoleManager = CUIPlugin.getDefault().getConsoleManager();
|
||||
IBuildConsoleManager consoleManager = fConsolePage.getConsole().getConsoleManager();
|
||||
IProject project = fConsolePage.getProject();
|
||||
IConsole console;
|
||||
if (fConsolePage.getConsole() instanceof GlobalBuildConsole)
|
||||
console = consoleManager.getGlobalConsole();
|
||||
else if (project == null)
|
||||
return;
|
||||
else
|
||||
console = consoleManager.getProjectConsole(project);
|
||||
IConsole console = consoleManager.getProjectConsole(project);
|
||||
if (console instanceof BuildConsolePartitioner) {
|
||||
BuildConsolePartitioner par = (BuildConsolePartitioner)console;
|
||||
fConsolePage.showError(par, true);
|
||||
|
|
|
@ -80,7 +80,7 @@ public class BuildGroup extends CViewActionGroup {
|
|||
saveEditors(prjs);
|
||||
|
||||
// Clear the build console, and open a stream
|
||||
CUIPlugin.getDefault().getConsoleManager().startGlobalConsole();
|
||||
CUIPlugin.getDefault().startGlobalConsole();
|
||||
|
||||
// Now delegate to the parent
|
||||
super.run();
|
||||
|
|
|
@ -52,7 +52,8 @@ public class BuildLogPreferencePage extends PropertyPage implements ICOptionCont
|
|||
IProject project = getProject();
|
||||
isProjectLevel= project != null;
|
||||
if(isProjectLevel) {
|
||||
Preferences prefs = BuildConsoleManager.getBuildLogPreferences(project);
|
||||
BuildConsoleManager consoleManager = getConsoleManager();
|
||||
Preferences prefs = consoleManager.getBuildLogPreferences(project);
|
||||
|
||||
Composite contents = ControlFactory.createCompositeEx(parent, 3, GridData.FILL_BOTH);
|
||||
((GridLayout) contents.getLayout()).makeColumnsEqualWidth = false;
|
||||
|
@ -78,7 +79,7 @@ public class BuildLogPreferencePage extends PropertyPage implements ICOptionCont
|
|||
((GridData) logLocationLabel.getLayoutData()).grabExcessHorizontalSpace = false;
|
||||
|
||||
logLocationText = ControlFactory.createTextField(contents, SWT.SINGLE | SWT.BORDER);
|
||||
String logLocation = prefs.get(BuildConsoleManager.KEY_LOG_LOCATION, BuildConsoleManager.getDefaultConsoleLogLocation(project));
|
||||
String logLocation = prefs.get(BuildConsoleManager.KEY_LOG_LOCATION, consoleManager.getDefaultConsoleLogLocation(project));
|
||||
logLocationText.setText(logLocation);
|
||||
logLocationText.addModifyListener(new ModifyListener() {
|
||||
public void modifyText(ModifyEvent e) {
|
||||
|
@ -113,15 +114,16 @@ public class BuildLogPreferencePage extends PropertyPage implements ICOptionCont
|
|||
protected void performDefaults() {
|
||||
if(isProjectLevel) {
|
||||
IProject project = getProject();
|
||||
Preferences prefs = BuildConsoleManager.getBuildLogPreferences(project);
|
||||
prefs.put(BuildConsoleManager.KEY_LOG_LOCATION, BuildConsoleManager.getDefaultConsoleLogLocation(project));
|
||||
BuildConsoleManager consoleManager = getConsoleManager();
|
||||
Preferences prefs = consoleManager.getBuildLogPreferences(project);
|
||||
prefs.put(BuildConsoleManager.KEY_LOG_LOCATION, consoleManager.getDefaultConsoleLogLocation(project));
|
||||
prefs.putBoolean(BuildConsoleManager.KEY_KEEP_LOG, BuildConsoleManager.CONSOLE_KEEP_LOG_DEFAULT);
|
||||
try {
|
||||
prefs.flush();
|
||||
} catch (BackingStoreException e) {
|
||||
CUIPlugin.log(e);
|
||||
}
|
||||
logLocationText.setText(prefs.get(BuildConsoleManager.KEY_LOG_LOCATION, BuildConsoleManager.getDefaultConsoleLogLocation(project)));
|
||||
logLocationText.setText(prefs.get(BuildConsoleManager.KEY_LOG_LOCATION, consoleManager.getDefaultConsoleLogLocation(project)));
|
||||
enableLoggingCheckbox.setSelection(prefs.getBoolean(BuildConsoleManager.KEY_KEEP_LOG, BuildConsoleManager.CONSOLE_KEEP_LOG_DEFAULT));
|
||||
updateEnablements();
|
||||
}
|
||||
|
@ -131,7 +133,8 @@ public class BuildLogPreferencePage extends PropertyPage implements ICOptionCont
|
|||
@Override
|
||||
public boolean performOk() {
|
||||
if(isProjectLevel) {
|
||||
Preferences prefs = BuildConsoleManager.getBuildLogPreferences(getProject());
|
||||
BuildConsoleManager consoleManager = getConsoleManager();
|
||||
Preferences prefs = consoleManager.getBuildLogPreferences(getProject());
|
||||
prefs.put(BuildConsoleManager.KEY_LOG_LOCATION, logLocationText.getText());
|
||||
prefs.putBoolean(BuildConsoleManager.KEY_KEEP_LOG, enableLoggingCheckbox.getSelection());
|
||||
try {
|
||||
|
@ -154,6 +157,10 @@ public class BuildLogPreferencePage extends PropertyPage implements ICOptionCont
|
|||
return project;
|
||||
}
|
||||
|
||||
private BuildConsoleManager getConsoleManager() {
|
||||
return (BuildConsoleManager)CUIPlugin.getDefault().getConsoleManager();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public org.eclipse.core.runtime.Preferences getPreferences() {
|
||||
throw new UnsupportedOperationException();
|
||||
|
|
|
@ -23,6 +23,7 @@ import org.eclipse.ui.IWorkbench;
|
|||
import org.eclipse.ui.IWorkbenchPreferencePage;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.buildconsole.BuildConsoleManager;
|
||||
import org.eclipse.cdt.internal.ui.buildconsole.GlobalBuildConsoleManager;
|
||||
|
||||
/**
|
||||
* Preference page for build logging options, such as whether the
|
||||
|
@ -31,7 +32,7 @@ import org.eclipse.cdt.internal.ui.buildconsole.BuildConsoleManager;
|
|||
public class GlobalBuildLogPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
|
||||
public GlobalBuildLogPreferencePage() {
|
||||
super(GRID);
|
||||
setPreferenceStore(BuildConsoleManager.getBuildLogPreferenceStore(null));
|
||||
setPreferenceStore(GlobalBuildConsoleManager.getBuildLogPreferenceStore());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -65,12 +66,12 @@ public class GlobalBuildLogPreferencePage extends FieldEditorPreferencePage impl
|
|||
}
|
||||
|
||||
public void init(IWorkbench workbench) {
|
||||
initDefaults(BuildConsoleManager.getBuildLogPreferenceStore(null));
|
||||
initDefaults(GlobalBuildConsoleManager.getBuildLogPreferenceStore());
|
||||
}
|
||||
|
||||
public static void initDefaults(IPreferenceStore prefs) {
|
||||
prefs.setDefault(BuildConsoleManager.KEY_KEEP_LOG, BuildConsoleManager.CONSOLE_KEEP_LOG_DEFAULT);
|
||||
prefs.setDefault(BuildConsoleManager.KEY_LOG_LOCATION,
|
||||
BuildConsoleManager.getDefaultConsoleLogLocation(null));
|
||||
GlobalBuildConsoleManager.getDefaultConsoleLogLocation());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ import java.util.Set;
|
|||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IAdapterManager;
|
||||
import org.eclipse.core.runtime.IConfigurationElement;
|
||||
|
@ -88,6 +89,7 @@ import org.eclipse.cdt.internal.ui.ICStatusConstants;
|
|||
import org.eclipse.cdt.internal.ui.IContextMenuConstants;
|
||||
import org.eclipse.cdt.internal.ui.ResourceAdapterFactory;
|
||||
import org.eclipse.cdt.internal.ui.buildconsole.BuildConsoleManager;
|
||||
import org.eclipse.cdt.internal.ui.buildconsole.GlobalBuildConsoleManager;
|
||||
import org.eclipse.cdt.internal.ui.editor.ASTProvider;
|
||||
import org.eclipse.cdt.internal.ui.editor.CDocumentProvider;
|
||||
import org.eclipse.cdt.internal.ui.editor.WorkingCopyManager;
|
||||
|
@ -502,6 +504,7 @@ public class CUIPlugin extends AbstractUIPlugin {
|
|||
*
|
||||
* @param name - console name.
|
||||
* @param contextId - console id matching context id in the Console view dropdown.
|
||||
* Can't be {@code null}.
|
||||
* @param iconUrl - a {@link URL} of the icon for the context menu of the Console
|
||||
* view. The url is expected to point to an image in eclipse OSGi bundle.
|
||||
* {@code iconUrl} can be <b>null</b>, in that case the default image is used.
|
||||
|
@ -510,6 +513,8 @@ public class CUIPlugin extends AbstractUIPlugin {
|
|||
* @noreference This method is not intended to be referenced by clients.
|
||||
*/
|
||||
public IBuildConsoleManager getConsoleManager(String name, String contextId, URL iconUrl) {
|
||||
Assert.isNotNull(contextId);
|
||||
|
||||
BuildConsoleManager manager = fBuildConsoleManagers.get(contextId);
|
||||
if (manager == null ) {
|
||||
manager = new BuildConsoleManager();
|
||||
|
@ -519,6 +524,12 @@ public class CUIPlugin extends AbstractUIPlugin {
|
|||
return manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 5.3
|
||||
*/
|
||||
public void startGlobalConsole() {
|
||||
GlobalBuildConsoleManager.startGlobalConsole();
|
||||
}
|
||||
/*
|
||||
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
|
||||
*/
|
||||
|
@ -599,6 +610,8 @@ public class CUIPlugin extends AbstractUIPlugin {
|
|||
fBuildConsoleManagers.clear();
|
||||
}
|
||||
|
||||
GlobalBuildConsoleManager.stop();
|
||||
|
||||
unregisterAdapters();
|
||||
|
||||
if (fWorkingCopyManager != null) {
|
||||
|
|
|
@ -30,16 +30,6 @@ public interface IBuildConsoleManager {
|
|||
* @since 5.3
|
||||
*/
|
||||
IConsole getProjectConsole(IProject project);
|
||||
/**
|
||||
* @return the global console
|
||||
* @since 5.3
|
||||
*/
|
||||
IConsole getGlobalConsole();
|
||||
/**
|
||||
* @return the document backing the global console
|
||||
* @since 5.3
|
||||
*/
|
||||
IDocument getGlobalConsoleDocument();
|
||||
/**
|
||||
* @param project
|
||||
* @return IDocument backing the console for the given project
|
||||
|
@ -49,14 +39,4 @@ public interface IBuildConsoleManager {
|
|||
void addConsoleListener(IBuildConsoleListener listener);
|
||||
void removeConsoleListener(IBuildConsoleListener listener);
|
||||
|
||||
/**
|
||||
* Setup the the global console at the start of the build
|
||||
* @since 5.3
|
||||
*/
|
||||
void startGlobalConsole();
|
||||
/**
|
||||
* Tear down the the global console at the start of the build
|
||||
* @since 5.3
|
||||
*/
|
||||
void stopGlobalConsole();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue