diff options
11 files changed, 167 insertions, 115 deletions
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java index 8d0f2f0c391..a7ec906eb48 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java @@ -7,6 +7,7 @@ package org.eclipse.cdt.make.ui.wizards; import org.eclipse.cdt.make.internal.ui.MakeProjectOptionBlock; import org.eclipse.cdt.ui.dialogs.ICOptionContainer; +import org.eclipse.cdt.ui.dialogs.IndexerBlock; import org.eclipse.cdt.ui.dialogs.ReferenceBlock; import org.eclipse.cdt.ui.dialogs.TabFolderOptionBlock; import org.eclipse.cdt.ui.wizards.NewCProjectWizard; @@ -30,7 +31,8 @@ import org.eclipse.core.resources.IProject; public class MakeProjectWizardOptionPage extends NewCProjectWizardOptionPage { public class MakeWizardOptionBlock extends MakeProjectOptionBlock { - + IndexerBlock indexBlock; + public MakeWizardOptionBlock(ICOptionContainer parent) { super(parent); } @@ -38,6 +40,7 @@ public class MakeProjectWizardOptionPage extends NewCProjectWizardOptionPage { protected void addTabs() { addTab(new ReferenceBlock()); super.addTabs(); + addTab(indexBlock = new IndexerBlock()); } } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java index a0dd9e58e65..4ed509fd22b 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java @@ -13,6 +13,7 @@ package org.eclipse.cdt.managedbuilder.ui.wizards; import org.eclipse.cdt.managedbuilder.internal.ui.ManagedProjectOptionBlock; import org.eclipse.cdt.ui.dialogs.ICOptionContainer; +import org.eclipse.cdt.ui.dialogs.IndexerBlock; import org.eclipse.cdt.ui.dialogs.ReferenceBlock; import org.eclipse.cdt.ui.dialogs.TabFolderOptionBlock; import org.eclipse.cdt.ui.wizards.NewCProjectWizard; @@ -22,13 +23,15 @@ import org.eclipse.core.resources.IProject; public class NewManagedProjectOptionPage extends NewCProjectWizardOptionPage { public class ManagedWizardOptionBlock extends ManagedProjectOptionBlock { - + IndexerBlock indexBlock; + public ManagedWizardOptionBlock(ICOptionContainer parent) { super(parent); } protected void addTabs() { addTab(new ReferenceBlock()); + addTab(indexBlock = new IndexerBlock()); } } diff --git a/core/org.eclipse.cdt.core/index/ChangeLog b/core/org.eclipse.cdt.core/index/ChangeLog index b223cf5ad08..65aa245bea0 100644 --- a/core/org.eclipse.cdt.core/index/ChangeLog +++ b/core/org.eclipse.cdt.core/index/ChangeLog @@ -1,3 +1,10 @@ +2004-12-07 Bogdan Gheorghe
+ - Added Index Enablement checking
+
+ * index/org/eclipse/cdt/internal/core/index/search/indexing/IndexManager.java
+ * index/org/eclipse/cdt/internal/core/index/search/indexing/IndexRequest.java
+
+
2004-02-13 Bogdan Gheorghe
PR 51232
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 54d1cd19f86..03740405f2b 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 @@ -22,6 +22,8 @@ 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; import org.eclipse.cdt.internal.core.index.impl.Index; @@ -37,7 +39,11 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.QualifiedName; +import org.w3c.dom.Element; +import org.w3c.dom.Node; public class IndexManager extends JobManager implements IIndexConstants { @@ -67,6 +73,16 @@ public class IndexManager extends JobManager implements IIndexConstants { public static boolean VERBOSE = false; + public final static String INDEX_MODEL_ID = CCorePlugin.PLUGIN_ID + ".newindexmodel"; //$NON-NLS-1$ + 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 INDEXER_PROBLEMS_ENABLED = "indexerProblemsEnabled"; //$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 // must tag the index as inconsistent, in case we exit before the update job is started @@ -105,6 +121,16 @@ public class IndexManager extends JobManager implements IIndexConstants { * Note: the actual operation is performed in background */ public void addSource(IFile resource, IPath indexedContainer){ + + IProject project = resource.getProject(); + + boolean indexEnabled = false; + if (project != null) + indexEnabled = isIndexEnabled(project); + else + org.eclipse.cdt.internal.core.model.Util.log(null, "IndexManager addSource: File has no project associated : " + resource.getName(), ICLogConstants.CDT); //$NON-NLS-1$ + + if (CCorePlugin.getDefault() == null) return; AddCompilationUnitToIndex job = new AddCompilationUnitToIndex(resource, indexedContainer, this); if (this.awaitingJobsCount() < MAX_FILES_IN_MEMORY) { @@ -115,7 +141,9 @@ public class IndexManager extends JobManager implements IIndexConstants { } public void updateDependencies(IResource resource){ - if (CCorePlugin.getDefault() == null) return; + if (CCorePlugin.getDefault() == null || !isIndexEnabled( resource.getProject()) ) + return; + UpdateDependency job = new UpdateDependency(resource); request(job); @@ -240,18 +268,26 @@ public class IndexManager extends JobManager implements IIndexConstants { public void indexAll(IProject project) { if (CCorePlugin.getDefault() == null) return; - // check if the same request is not already in the queue - IndexRequest request = new IndexAllProject(project, this); - for (int i = this.jobEnd; i > this.jobStart; i--) // NB: don't check job at jobStart, as it may have already started (see http://bugs.eclipse.org/bugs/show_bug.cgi?id=32488) - if (request.equals(this.awaitingJobs[i])) return; - this.request(request); + //check to see if indexing isEnabled for this project + boolean indexEnabled = isIndexEnabled(project); + + if (indexEnabled){ + // check if the same request is not already in the queue + IndexRequest request = new IndexAllProject(project, this); + for (int i = this.jobEnd; i > this.jobStart; i--) // NB: don't check job at jobStart, as it may have already started (see http://bugs.eclipse.org/bugs/show_bug.cgi?id=32488) + if (request.equals(this.awaitingJobs[i])) return; + this.request(request); + } } /** * Index the content of the given source folder. */ public void indexSourceFolder(CProject javaProject, IPath sourceFolder, final char[][] exclusionPattern) { IProject project = javaProject.getProject(); - + + if( !isIndexEnabled( project ) ) + return; + if (this.jobEnd > this.jobStart) { // check if a job to index the project is not already in the queue IndexRequest request = new IndexAllProject(project, this); @@ -308,7 +344,8 @@ public class IndexManager extends JobManager implements IIndexConstants { IndexRequest request = null; if (target instanceof IProject) { IProject p = (IProject) target; - request = new IndexAllProject(p, this); + if( p.exists() && isIndexEnabled( p ) ) + request = new IndexAllProject(p, this); } if (request != null) @@ -347,7 +384,10 @@ public class IndexManager extends JobManager implements IIndexConstants { * Note: the actual operation is performed in background */ public void remove(String resourceName, IPath indexedContainer){ - request(new RemoveFromIndex(resourceName, indexedContainer, this)); + IProject project = CCorePlugin.getWorkspace().getRoot().getProject(indexedContainer.toString()); + + if( isIndexEnabled( project ) ) + request(new RemoveFromIndex(resourceName, indexedContainer, this)); } /** * Removes the index for a given path. @@ -390,7 +430,10 @@ public class IndexManager extends JobManager implements IIndexConstants { */ public void removeSourceFolderFromIndex(CProject javaProject, IPath sourceFolder, char[][] exclusionPatterns) { IProject project = javaProject.getProject(); - + + if( !isIndexEnabled( project ) ) + return; + if (this.jobEnd > this.jobStart) { // check if a job to index the project is not already in the queue IndexRequest request = new IndexAllProject(project, this); @@ -573,4 +616,60 @@ public class IndexManager extends JobManager implements IIndexConstants { JobManager.verbose("-> index state updated to: " + state + " for: "+indexName); //$NON-NLS-1$ //$NON-NLS-2$ } } + + /** + * @param project + * @return + */ + public boolean isIndexEnabled(IProject project) { + if( project == null || !project.exists() || !project.isOpen() ) + return false; + + Boolean indexValue = null; + + try { + indexValue = (Boolean) project.getSessionProperty(activationKey); + } catch (CoreException e) { + } + + if (indexValue != null) + return indexValue.booleanValue(); + + try { + //Load value for project + indexValue = loadIndexerEnabledFromCDescriptor(project); + if (indexValue != null){ + project.setSessionProperty(IndexManager.activationKey, indexValue); + return indexValue.booleanValue(); + } + +// TODO: Indexer Block Place holder for Managed Make - take out + indexValue = new Boolean(true); + project.setSessionProperty(IndexManager.activationKey, indexValue); + return indexValue.booleanValue(); + } catch (CoreException e1) { + } + + return false; + } + + private Boolean loadIndexerEnabledFromCDescriptor(IProject project) throws CoreException { + // Check if we have the property in the descriptor + // We pass false since we do not want to create the descriptor if it does not exists. + ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project); + Boolean strBool = null; + if (descriptor != null) { + Node child = descriptor.getProjectData(CDT_INDEXER).getFirstChild(); + + 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.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java index 96aab0b526c..90146710281 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java @@ -13,9 +13,11 @@ package org.eclipse.cdt.internal.core.search.indexing; import java.io.IOException; +import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.internal.core.index.IIndex; import org.eclipse.cdt.internal.core.search.processing.IJob; +import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IPath; -import org.eclipse.cdt.internal.core.index.IIndex; public abstract class IndexRequest implements IJob { protected boolean isCancelled = false; @@ -37,6 +39,10 @@ public abstract class IndexRequest implements IJob { } public boolean isReadyToRun() { + IProject project = CCorePlugin.getWorkspace().getRoot().getProject(indexPath.segment(0)); + if ( !project.isAccessible() || !this.manager.isIndexEnabled( project ) ) + return false; + // tag the index as inconsistent this.manager.aboutToUpdateIndex(indexPath, updatedIndexState()); return true; diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 1945c77caae..7586e28f856 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,14 @@ +2004-12-07 Bogdan Gheorghe + + Added Index Enablement block + + * src/org/eclipse/cdt/ui/dialogs/IndexerBlock.java + * src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java + * src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java + * src/org/eclipse/cdt/internal/ui/CUIMessages.properties + * plugin.properties + * plugin.xml + 2004-05-31 Alain Magloire Thomas patch dealing with memory leaks. diff --git a/core/org.eclipse.cdt.ui/plugin.properties b/core/org.eclipse.cdt.ui/plugin.properties index 98bde042e4a..dea44678067 100644 --- a/core/org.eclipse.cdt.ui/plugin.properties +++ b/core/org.eclipse.cdt.ui/plugin.properties @@ -94,3 +94,5 @@ CSearchActionSet.description= Action set containing search related C/C++ actions # Menus searchMenu.label= Se&arch +# Indexer +CDTIndexerProperty.name=C/C++ Indexer
\ No newline at end of file diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml index a2bc0c1ce64..4d523436d42 100644 --- a/core/org.eclipse.cdt.ui/plugin.xml +++ b/core/org.eclipse.cdt.ui/plugin.xml @@ -27,9 +27,9 @@ <extension-point id="CElementFilters" name="%elementFiltersName"/> <extension-point id="BinaryParserPage" name="Binary Parser Page"/> <!-- =========================================================================== --> -<!-- Extension point: org.eclipse.cdt.ui.textHovers --> -<!-- Purpose: Provide a perspective specific text hovering for CEditor files --> <!-- Extension Implementation: must implement org.eclipse.jface.text.ITextHover --> +<!-- Purpose: Provide a perspective specific text hovering for CEditor files --> +<!-- Extension point: org.eclipse.cdt.ui.textHovers --> <!-- =========================================================================== --> <extension-point id="textHovers" name="%textHoversName"/> @@ -130,8 +130,8 @@ id="org.eclipse.cdt.ui.CView"> </view> </extension> -<!-- For C Wizards --> <!-- The wizards --> +<!-- For C Wizards --> <extension point="org.eclipse.ui.newWizards"> <category @@ -483,5 +483,14 @@ id="ElfBinaryParserPage"> </parserPage> </extension> + <extension + point="org.eclipse.ui.propertyPages"> + <page + objectClass="org.eclipse.core.resources.IProject" + name="%CDTIndexerProperty.name" + class="org.eclipse.cdt.ui.dialogs.IndexerOptionPropertyPage" + id="org.eclipse.cdt.ui.indexer"> + </page> + </extension> </plugin> diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CUIMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CUIMessages.properties index e7ae383959b..573043535ad 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CUIMessages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CUIMessages.properties @@ -12,3 +12,7 @@ Drag.move.problem.title=Drag and Drop Problem Drag.move.problem.message={0} is read only. Do you still wish to delete it? ExceptionDialog.seeErrorLogMessage=See error log for more details. + +IndexerOptions.indexer = C/C++ Indexer +IndexerOptions.enableIndexing = Enable C/C++ &Indexing + 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 ef2afe8d306..ee6d9ecb7ea 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 @@ -66,15 +66,6 @@ public class IndexerOptionDialogPage extends DialogPage { indexerEnabled = createCheckButton(group, ENABLE_INDEXING ); - Group problemsGroup = new Group(result, SWT.NONE ); - problemsGroup.setLayout(new GridLayout()); - problemsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - problemsGroup.setText( INDEXER_PROBLEMS ); - - preprocessorProblemsEnabled = createCheckButton( problemsGroup, ENABLE_PREPROCESSOR_PROBLEMS ); - semanticProblemsEnabled = createCheckButton( problemsGroup, ENABLE_SEMANTIC_PROBLEMS ); - //uncomment when we want to report syntax problems - syntacticProblemsEnabled = createCheckButton( problemsGroup, ENABLE_SYNTACTIC_PROBLEMS ); setControl(result); } @@ -95,26 +86,11 @@ public class IndexerOptionDialogPage extends DialogPage { public void setIndexerValue(boolean value){ indexerEnabled.setSelection(value); } - - public void setIndexerProblemValues( int value ){ - preprocessorProblemsEnabled.setSelection( (value & IndexManager.PREPROCESSOR_PROBLEMS_BIT) != 0 ); - if( syntacticProblemsEnabled != null ) - syntacticProblemsEnabled.setSelection( (value & IndexManager.SYNTACTIC_PROBLEMS_BIT) != 0 ); - semanticProblemsEnabled.setSelection( (value & IndexManager.SEMANTIC_PROBLEMS_BIT) != 0 ); - } - + public boolean getIndexerValue(){ return indexerEnabled.getSelection(); } - public int getIndexerProblemsValues(){ - int result = 0; - result |= preprocessorProblemsEnabled.getSelection() ? IndexManager.PREPROCESSOR_PROBLEMS_BIT : 0; - if( syntacticProblemsEnabled != null ) - result |= syntacticProblemsEnabled.getSelection() ? IndexManager.SYNTACTIC_PROBLEMS_BIT : 0; - result |= semanticProblemsEnabled.getSelection() ? IndexManager.SEMANTIC_PROBLEMS_BIT : 0; - return result; - } public void persistIndexerValues(IProject project){ ICDescriptor descriptor = null; @@ -123,7 +99,7 @@ public class IndexerOptionDialogPage extends DialogPage { try { newProject = project; - descriptor = CCorePlugin.getDefault().getCProjectDescription(newProject, true); + descriptor = CCorePlugin.getDefault().getCProjectDescription(newProject); rootElement = descriptor.getProjectData(IndexManager.CDT_INDEXER); // Clear out all current children @@ -135,17 +111,14 @@ public class IndexerOptionDialogPage extends DialogPage { Document doc = rootElement.getOwnerDocument(); boolean indexProject = getIndexerValue(); - int problemValues = getIndexerProblemsValues(); saveIndexerEnabled(indexProject, rootElement, doc); - saveIndexerProblemsEnabled( problemValues, rootElement, doc ); descriptor.saveProjectData(); //Update project session property project.setSessionProperty(IndexManager.activationKey,new Boolean(indexProject)); - project.setSessionProperty(IndexManager.problemsActivationKey, new Integer( problemValues )); } catch (CoreException e) { e.printStackTrace(); @@ -161,12 +134,5 @@ public class IndexerOptionDialogPage extends DialogPage { rootElement.appendChild(indexEnabled); } - private static void saveIndexerProblemsEnabled ( int problemValues, Element rootElement, Document doc ) { - - Element enabled = doc.createElement(IndexManager.INDEXER_PROBLEMS_ENABLED); - Integer tempValue= new Integer( problemValues ); - - enabled.setAttribute(IndexManager.INDEXER_PROBLEMS_VALUE, tempValue.toString()); - rootElement.appendChild(enabled); - } + } 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 f715051fa98..fabf1d17da8 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 @@ -14,7 +14,6 @@ package org.eclipse.cdt.ui.dialogs; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.ICDescriptor; import org.eclipse.cdt.internal.core.search.indexing.IndexManager; -import org.eclipse.cdt.internal.ui.ICHelpContextIds; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.swt.SWT; @@ -22,7 +21,6 @@ import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.dialogs.PropertyPage; -import org.eclipse.ui.help.WorkbenchHelp; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -47,7 +45,7 @@ public class IndexerOptionPropertyPage extends PropertyPage { composite.setLayout(new FillLayout()); optionPage.createControl(composite); - WorkbenchHelp.setHelp(composite, ICHelpContextIds.PROJECT_INDEXER_PROPERTIES); + //WorkbenchHelp.setHelp(composite, ICHelpContextIds.PROJECT_INDEXER_PROPERTIES); initialize(); return composite; @@ -64,13 +62,11 @@ public class IndexerOptionPropertyPage extends PropertyPage { try { oldIndexerValue = getIndexerEnabled(project); - oldIndexerProblemsValue = getIndexerProblemsEnabled( project ); } catch (CoreException e) { e.printStackTrace(); } optionPage.setIndexerValue(oldIndexerValue); - optionPage.setIndexerProblemValues( oldIndexerProblemsValue ); } /* @@ -79,18 +75,14 @@ public class IndexerOptionPropertyPage extends PropertyPage { public boolean performOk() { boolean newIndexerValue = optionPage.getIndexerValue(); - int newIndexerProblemsValue = optionPage.getIndexerProblemsValues(); boolean indexChanged = (oldIndexerValue != newIndexerValue); - boolean problemsChanged = (oldIndexerProblemsValue != newIndexerProblemsValue ); - if ( indexChanged || problemsChanged){ + if ( indexChanged ){ //persist new values IProject tempProject = getProject(); optionPage.persistIndexerValues(tempProject); - if( problemsChanged && newIndexerProblemsValue == 0) - CCorePlugin.getDefault().getCoreModel().getIndexManager().removeIndexerProblems(tempProject); //if indexer is now on send a index all request if( indexChanged && newIndexerValue && !requestedIndexAll ) { @@ -137,29 +129,6 @@ public class IndexerOptionPropertyPage extends PropertyPage { return indexValue.booleanValue(); } - public int getIndexerProblemsEnabled( IProject project ) throws CoreException - { - // See if there's already one associated with the resource for this session - Integer value = (Integer) project.getSessionProperty( IndexManager.problemsActivationKey ); - - // Try to load one for the project - if (value == null) { - value = loadIndexerProblemsEnabledFromCDescriptor(project); - } - - // There is nothing persisted for the session, or saved in a file so - // create a build info object - if (value != null) { - project.setSessionProperty(IndexManager.problemsActivationKey, value); - } else { - //Hmm, no persisted indexer value. Could be an old project - set all to false and persist - value = new Integer( 0 ); - optionPage.setIndexerProblemValues( 0 ); - optionPage.persistIndexerValues(project); - } - - return value.intValue(); - } /** * Loads dis from .cdtproject file * @param project @@ -168,7 +137,7 @@ public class IndexerOptionPropertyPage extends PropertyPage { * @throws CoreException */ private Boolean loadIndexerEnabledFromCDescriptor(IProject project) throws CoreException { - ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project, true); + ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project); Node child = descriptor.getProjectData(IndexManager.CDT_INDEXER).getFirstChild(); Boolean strBool = null; @@ -184,32 +153,5 @@ public class IndexerOptionPropertyPage extends PropertyPage { return strBool; } - private Integer loadIndexerProblemsEnabledFromCDescriptor( IProject project ) throws CoreException - { - ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project, true); - - Node child = descriptor.getProjectData(IndexManager.CDT_INDEXER).getFirstChild(); - Integer strInt = null; - - while (child != null) { - if (child.getNodeName().equals(IndexManager.INDEXER_PROBLEMS_ENABLED)) { - String val = ((Element)child).getAttribute(IndexManager.INDEXER_PROBLEMS_VALUE); - try{ - strInt = Integer.valueOf( val ); - } catch( NumberFormatException e ){ - //some old projects might have a boolean stored, translate that into just preprocessors - Boolean bool = Boolean.valueOf( val ); - if( bool.booleanValue() ) - strInt = new Integer( IndexManager.PREPROCESSOR_PROBLEMS_BIT ); - else - strInt = new Integer( 0 ); - } - break; - } - - child = child.getNextSibling(); - } - return strInt; - } -} +}
\ No newline at end of file |