1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-01 06:05:24 +02:00

2004-08-21 Alain Magloire

(Partial, since the indexer is still not aware of this)
	Fix for 66559: Work on the ResolverModel
	* model/org/eclipse/cdt/internal/core/model/ResolverProcessor.java
	* src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java
	* src/org/eclipse/cdt/core/internal/filetype/WorkspaceResolver.java
This commit is contained in:
Alain Magloire 2004-08-22 01:11:14 +00:00
parent 940aaa947c
commit 87f24bfe30
4 changed files with 32 additions and 13 deletions

View file

@ -1,3 +1,11 @@
2004-08-21 Alain Magloire
(Partial, since the indexer is still not aware of this)
Fix for 66559: Work on the ResolverModel
* model/org/eclipse/cdt/internal/core/model/ResolverProcessor.java
* src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java
* src/org/eclipse/cdt/core/internal/filetype/WorkspaceResolver.java
2004-08-20 Chris Wiebe
make PathUtil visible

View file

@ -231,6 +231,7 @@ public class ResolverProcessor {
return new ICElement[] { cprojects[i] };
}
}
return CElement.NO_ELEMENTS;
}
// Assume a workspace resolver
List list = new ArrayList(cprojects.length);

View file

@ -79,7 +79,7 @@ public class ResolverModel implements IResolverModel {
private Map fTypeMap = new HashMap();
// Default resolver
private ICFileTypeResolver fDefaultResolver = null;
private ICFileTypeResolver fWorkspaceResolver = null;
// XML tag names, etc.
private static final String EXTENSION_LANG = "CLanguage"; //$NON-NLS-1$
@ -111,7 +111,7 @@ public class ResolverModel implements IResolverModel {
loadDeclaredLanguages();
loadDeclaredTypes();
fDefaultResolver = loadDefaultResolver();
fWorkspaceResolver = loadWorkspaceResolver();
convertFrom20();
initRegistryChangeListener();
@ -224,7 +224,7 @@ public class ResolverModel implements IResolverModel {
}
public ICFileTypeResolver getResolver() {
return fDefaultResolver;
return fWorkspaceResolver;
}
public boolean hasCustomResolver(IProject project) {
@ -426,7 +426,7 @@ public class ResolverModel implements IResolverModel {
if (property != null) {
if (WorkspaceResolver.PREFS_ASSOCIATIONS_EXCLUSION.equals(property) ||
WorkspaceResolver.PREFS_ASSOCIATIONS_INCLUSION.equals(property)) {
fDefaultResolver = loadDefaultResolver();
fWorkspaceResolver = loadWorkspaceResolver();
}
}
}
@ -447,8 +447,7 @@ public class ResolverModel implements IResolverModel {
deltas = event.getExtensionDeltas(CCorePlugin.PLUGIN_ID, EXTENSION_ASSOC);
if (deltas.length != 0) {
fDefaultResolver = loadDefaultResolver();
//fWkspResolver = loadWorkspaceResolver();
fWorkspaceResolver = loadWorkspaceResolver();
}
fireEvent(modelEvent);
@ -639,7 +638,7 @@ public class ResolverModel implements IResolverModel {
* Initialize the default resolver by loading data from
* declared extension points.
*/
private ICFileTypeResolver loadDefaultResolver() {
private ICFileTypeResolver loadWorkspaceResolver() {
return new WorkspaceResolver(this);
}
@ -651,7 +650,7 @@ public class ResolverModel implements IResolverModel {
private void convertFrom20() {
if (customWorkspaceResolverExists()) {
ICFileTypeAssociation[] assocs = loadWorkspaceResolver();
ICFileTypeAssociation[] assocs = loadOldWorkspaceResolver();
if (assocs != null && assocs.length > 0) {
getResolver().addAssociations(assocs);
}
@ -671,7 +670,7 @@ public class ResolverModel implements IResolverModel {
return CCorePlugin.getDefault().getStateLocation().append(WKSP_STATE_FILE);
}
private ICFileTypeAssociation[] loadWorkspaceResolver() {
private ICFileTypeAssociation[] loadOldWorkspaceResolver() {
List assocs = new ArrayList();
File file = getWorkspaceResolverStateFilePath().toFile();

View file

@ -31,11 +31,14 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Preferences;
/**
* The new CFileTypeAssociations are save in a property String
* The removed CFileTypeAssociations are save in a property String
*
*/
public class WorkspaceResolver extends CFileTypeResolver {
public static final String PREFS_ASSOCIATIONS_INCLUSION = CCorePlugin.PLUGIN_ID + ".associationInclusion";
public static final String PREFS_ASSOCIATIONS_EXCLUSION = CCorePlugin.PLUGIN_ID + ".associationExclusion";
public static final String PREFS_ASSOCIATIONS_INCLUSION = CCorePlugin.PLUGIN_ID + ".associationInclusion"; //$NON-NLS-1$
public static final String PREFS_ASSOCIATIONS_EXCLUSION = CCorePlugin.PLUGIN_ID + ".associationExclusion"; //$NON-NLS-1$
ResolverModel fModel;
List extensionsList;
@ -77,6 +80,10 @@ public class WorkspaceResolver extends CFileTypeResolver {
}
// add
// For adding we have to
// - check if the association was define in an extension
// if yes make sure we remove in the inclusion list
// if not add as a new association in the inclusion list
if (null != addAssocs && addAssocs.length > 0) {
List newIncList = new ArrayList();
List newExcList = new ArrayList();
@ -103,6 +110,10 @@ public class WorkspaceResolver extends CFileTypeResolver {
}
// remove
// For removing we have to
// - check if the association was define in an extension
// if yes make sure we remove in the exclusion list
// if not remove in the inclusion list
if (null != delAssocs && delAssocs.length > 0) {
List newIncList = new ArrayList();
List newExcList = new ArrayList();
@ -188,7 +199,7 @@ public class WorkspaceResolver extends CFileTypeResolver {
sb.append(';');
}
sb.append(addAssocs[i].getPattern());
sb.append("!!"); //$NON-NLS-1
sb.append("!!"); //$NON-NLS-1$
sb.append(addAssocs[i].getType().getId());
}
Preferences prefs = CCorePlugin.getDefault().getPluginPreferences();
@ -222,7 +233,7 @@ public class WorkspaceResolver extends CFileTypeResolver {
sb.append(';');
}
sb.append(addAssocs[i].getPattern());
sb.append("!!"); //$NON-NLS-1
sb.append("!!"); //$NON-NLS-1$
sb.append(addAssocs[i].getType().getId());
}
Preferences prefs = CCorePlugin.getDefault().getPluginPreferences();