From 87f24bfe30b15ee07c8f83065fedfa28ceb08b01 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Sun, 22 Aug 2004 01:11:14 +0000 Subject: [PATCH] 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 --- core/org.eclipse.cdt.core/ChangeLog | 8 ++++++++ .../core/model/ResolverProcessor.java | 1 + .../core/internal/filetype/ResolverModel.java | 17 ++++++++--------- .../internal/filetype/WorkspaceResolver.java | 19 +++++++++++++++---- 4 files changed, 32 insertions(+), 13 deletions(-) diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 82b1f721d8c..7194b3da981 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -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 diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ResolverProcessor.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ResolverProcessor.java index 32e242b7fe6..d81149863cb 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ResolverProcessor.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ResolverProcessor.java @@ -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); diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java index ea0f4021caa..bfbe8875a22 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java @@ -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(); diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/WorkspaceResolver.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/WorkspaceResolver.java index 983565cfba8..505c57f0e5f 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/WorkspaceResolver.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/WorkspaceResolver.java @@ -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();