From 72799392c938ea8928e2ecab71a6bd36bf56398a Mon Sep 17 00:00:00 2001 From: Bogdan Gheorghe Date: Wed, 5 May 2004 17:01:19 +0000 Subject: [PATCH] Added code to load and store index enablement setting from a project's descriptor --- core/org.eclipse.cdt.core/index/ChangeLog | 3 ++ .../core/search/indexing/IndexManager.java | 35 +++++++++++++++++++ core/org.eclipse.cdt.ui/ChangeLog | 9 +++++ .../eclipse/cdt/ui/dialogs/IndexerBlock.java | 4 +-- .../ui/dialogs/IndexerOptionDialogPage.java | 8 ++--- .../ui/dialogs/IndexerOptionPropertyPage.java | 6 ++-- 6 files changed, 55 insertions(+), 10 deletions(-) diff --git a/core/org.eclipse.cdt.core/index/ChangeLog b/core/org.eclipse.cdt.core/index/ChangeLog index 05e938bd178..b7c4b368181 100644 --- a/core/org.eclipse.cdt.core/index/ChangeLog +++ b/core/org.eclipse.cdt.core/index/ChangeLog @@ -1,3 +1,6 @@ +2004-05-05 Bogdan Gheorghe + Added code to load and store index enablement setting from a project's descriptor + 2004-05-03 Bogdan Gheorghe Added index enablement checking to index manager diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java index 27a3fa4865f..47847eae149 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java @@ -21,6 +21,7 @@ import java.util.Iterator; import java.util.Map; import java.util.zip.CRC32; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.ICDescriptor; import org.eclipse.cdt.core.ICLogConstants; import org.eclipse.cdt.internal.core.CharOperation; import org.eclipse.cdt.internal.core.index.IIndex; @@ -42,6 +43,8 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Preferences; import org.eclipse.core.runtime.QualifiedName; +import org.w3c.dom.Element; +import org.w3c.dom.Node; public class IndexManager extends JobManager implements IIndexConstants { @@ -77,6 +80,9 @@ public class IndexManager extends JobManager implements IIndexConstants { public final static String ACTIVATION = "enable"; //$NON-NLS-1$ public final static QualifiedName activationKey = new QualifiedName(INDEX_MODEL_ID, ACTIVATION); + public static final String INDEXER_ENABLED = "indexEnabled"; //$NON-NLS-1$ + public static final String CDT_INDEXER = "cdt_indexer"; //$NON-NLS-1$ + public static final String INDEXER_VALUE = "indexValue"; //$NON-NLS-1$ public synchronized void aboutToUpdateIndex(IPath path, Integer newIndexState) { // newIndexState is either UPDATING_STATE or REBUILDING_STATE @@ -295,6 +301,18 @@ public class IndexManager extends JobManager implements IIndexConstants { if (indexValue != null) return indexValue.booleanValue(); + try { + //Load value for project + indexValue = loadIndexerEnabledromCDescriptor(project); + if (indexValue != null){ + project.setSessionProperty(IndexManager.activationKey, indexValue); + return indexValue.booleanValue(); + } + } catch (CoreException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + return false; } /** @@ -653,5 +671,22 @@ public class IndexManager extends JobManager implements IIndexConstants { jobSet.remove(tempJob.resource.getLocation()); } } + + private Boolean loadIndexerEnabledromCDescriptor(IProject project) throws CoreException { + ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project); + + Node child = descriptor.getProjectData(CDT_INDEXER).getFirstChild(); + Boolean strBool = null; + + while (child != null) { + if (child.getNodeName().equals(INDEXER_ENABLED)) + strBool = Boolean.valueOf(((Element)child).getAttribute(INDEXER_VALUE)); + + + child = child.getNextSibling(); + } + + return strBool; + } } diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 8efa29cf77f..8a28add6560 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,12 @@ +2004-05-05 Bogdan Gheorghe + Moved the index enablement constants to IndexManager to allow the index manager + to load enablement settings if not done so by the property page + + * src/org/eclipse/cdt/ui/dialogs/IndexerBlock.java + * src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java + * src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java + + 2004-05-05 Bogdan Gheorghe Got rid of the old search context menus in CEditor, COutlineView, CView. diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerBlock.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerBlock.java index 14d7c09a296..7f441c5d5b9 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerBlock.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerBlock.java @@ -25,9 +25,7 @@ import org.eclipse.swt.widgets.Composite; public class IndexerBlock extends AbstractCOptionPage { private IndexerOptionDialogPage optionPage; - public static final String INDEXER_ENABLED = "indexEnabled"; //$NON-NLS-1$ - public static final String CDT_INDEXER = "cdt_indexer"; //$NON-NLS-1$ - public static final String INDEXER_VALUE = "indexValue"; //$NON-NLS-1$ + private static final String INDEXER_LABEL = "IndexerBlock.label"; //$NON-NLS-1$ private static final String INDEXER_DESC = "IndexerBlock.desc"; //$NON-NLS-1$ diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java index 9e96665a376..ca42ecae111 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java @@ -88,7 +88,7 @@ public class IndexerOptionDialogPage extends DialogPage { try { newProject = project; descriptor = CCorePlugin.getDefault().getCProjectDescription(newProject); - rootElement = descriptor.getProjectData(IndexerBlock.CDT_INDEXER); + rootElement = descriptor.getProjectData(IndexManager.CDT_INDEXER); // Clear out all current children @@ -115,14 +115,14 @@ public class IndexerOptionDialogPage extends DialogPage { e.printStackTrace(); } } - + private static void saveIndexerEnabled (boolean indexerEnabled, Element rootElement, Document doc ) { - Element indexEnabled = doc.createElement(IndexerBlock.INDEXER_ENABLED); + Element indexEnabled = doc.createElement(IndexManager.INDEXER_ENABLED); Boolean tempValue= new Boolean(indexerEnabled); - indexEnabled.setAttribute(IndexerBlock.INDEXER_VALUE,tempValue.toString()); + indexEnabled.setAttribute(IndexManager.INDEXER_VALUE,tempValue.toString()); rootElement.appendChild(indexEnabled); } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java index 7ca442b4acf..06ebb1cdc30 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java @@ -136,12 +136,12 @@ public class IndexerOptionPropertyPage extends PropertyPage { private Boolean loadIndexerEnabledromCDescriptor(IProject project) throws CoreException { ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project); - Node child = descriptor.getProjectData(IndexerBlock.CDT_INDEXER).getFirstChild(); + Node child = descriptor.getProjectData(IndexManager.CDT_INDEXER).getFirstChild(); Boolean strBool = null; while (child != null) { - if (child.getNodeName().equals(IndexerBlock.INDEXER_ENABLED)) - strBool = Boolean.valueOf(((Element)child).getAttribute(IndexerBlock.INDEXER_VALUE)); + if (child.getNodeName().equals(IndexManager.INDEXER_ENABLED)) + strBool = Boolean.valueOf(((Element)child).getAttribute(IndexManager.INDEXER_VALUE)); child = child.getNextSibling();