mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
AbstractBuiltinSpecsDetector to execute() on registering,
no more IResourceChangeListener
This commit is contained in:
parent
5d7f9bf015
commit
babba4a0a7
2 changed files with 9 additions and 43 deletions
|
@ -49,9 +49,6 @@ import org.eclipse.cdt.utils.PathUtil;
|
|||
import org.eclipse.core.resources.IMarker;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IResourceChangeEvent;
|
||||
import org.eclipse.core.resources.IResourceChangeListener;
|
||||
import org.eclipse.core.resources.IResourceDelta;
|
||||
import org.eclipse.core.resources.IWorkspaceRoot;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
|
@ -70,8 +67,7 @@ import org.eclipse.core.runtime.jobs.ISchedulingRule;
|
|||
import org.eclipse.core.runtime.jobs.Job;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSettingsOutputScanner
|
||||
implements ICListenerRegisterer, IResourceChangeListener {
|
||||
public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSettingsOutputScanner implements ICListenerRegisterer {
|
||||
private static final int TICKS_STREAM_MONITOR = 100;
|
||||
private static final int TICKS_CLEAN_MARKERS = 1;
|
||||
private static final int TICKS_RUN_FOR_ONE_LANGUAGE = 10;
|
||||
|
@ -241,55 +237,19 @@ public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSetti
|
|||
|
||||
public void registerListener(ICConfigurationDescription cfgDescription) {
|
||||
currentCfgDescription = cfgDescription;
|
||||
ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_BUILD);
|
||||
// TODO - remove me
|
||||
CCorePlugin.log(new Status(IStatus.INFO,CCorePlugin.PLUGIN_ID,
|
||||
getPrefixForLog() + "Added listener [" + System.identityHashCode(this) + "] " + this));
|
||||
|
||||
execute();
|
||||
}
|
||||
|
||||
public void unregisterListener() {
|
||||
ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
|
||||
// TODO - remove me
|
||||
CCorePlugin.log(new Status(IStatus.INFO,CCorePlugin.PLUGIN_ID,
|
||||
getPrefixForLog() + "Removed listener [" + System.identityHashCode(this) + "] " + this));
|
||||
}
|
||||
|
||||
private String eventToString(IResourceChangeEvent event) {
|
||||
String strType = null;
|
||||
IResource rc = null;
|
||||
if (event != null) {
|
||||
int type = event.getType();
|
||||
switch (type) {
|
||||
case IResourceChangeEvent.POST_CHANGE: strType = "POST_CHANGE";break;
|
||||
case IResourceChangeEvent.PRE_CLOSE: strType = "PRE_CLOSE";break;
|
||||
case IResourceChangeEvent.PRE_DELETE: strType = "PRE_DELETE";break;
|
||||
case IResourceChangeEvent.PRE_BUILD: strType = "PRE_BUILD";break;
|
||||
case IResourceChangeEvent.POST_BUILD: strType = "POST_BUILD";break;
|
||||
case IResourceChangeEvent.PRE_REFRESH: strType = "PRE_REFRESH";break;
|
||||
default: strType = "unknown";break;
|
||||
}
|
||||
strType += "=" + Integer.toHexString(type);
|
||||
|
||||
IResourceDelta delta = event.getDelta();
|
||||
rc = delta!=null ? delta.getResource() : null;
|
||||
}
|
||||
String result = "Event " + strType + ", " + rc;
|
||||
return result;
|
||||
}
|
||||
|
||||
public void resourceChanged(IResourceChangeEvent event) {
|
||||
System.out.println(eventToString(event));
|
||||
|
||||
// if (event.getType() != IResourceChangeEvent.PRE_BUILD)
|
||||
// return;
|
||||
//
|
||||
// IResourceDelta delta = event.getDelta();
|
||||
// delta.getKind();
|
||||
// delta.getFlags();
|
||||
|
||||
execute();
|
||||
}
|
||||
|
||||
protected void execute() {
|
||||
if (isExecuted) {
|
||||
// // TODO - remove me
|
||||
|
|
|
@ -41,12 +41,15 @@ import org.eclipse.core.runtime.IStatus;
|
|||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.jobs.ILock;
|
||||
import org.eclipse.core.runtime.jobs.Job;
|
||||
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
|
||||
import org.eclipse.core.runtime.preferences.InstanceScope;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
public class LanguageSettingsProvidersSerializer {
|
||||
private static final String PREFERENCE_WORSPACE_PROVIDERS_SET = "language.settings.providers.set.for.workspace";
|
||||
private static final String STORAGE_WORKSPACE_LANGUAGE_SETTINGS = "language.settings.xml"; //$NON-NLS-1$
|
||||
private static final String SETTINGS_FOLDER_NAME = ".settings/"; //$NON-NLS-1$
|
||||
private static final String STORAGE_PROJECT_LANGUAGE_SETTINGS = "language.settings.xml"; //$NON-NLS-1$
|
||||
|
@ -199,6 +202,9 @@ public class LanguageSettingsProvidersSerializer {
|
|||
public static void setWorkspaceProviders(List<ILanguageSettingsProvider> providers) throws CoreException {
|
||||
setWorkspaceProvidersInternal(providers);
|
||||
serializeLanguageSettingsWorkspace();
|
||||
// generate preference change event
|
||||
IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID);
|
||||
prefs.putBoolean(PREFERENCE_WORSPACE_PROVIDERS_SET, ! prefs.getBoolean(PREFERENCE_WORSPACE_PROVIDERS_SET, false));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue