mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-16 21:45:22 +02:00
[163883] Enable proper persistence for multiple filter string attributes in filter pools
This commit is contained in:
parent
acd2bd19c2
commit
3aa04bb1f4
2 changed files with 43 additions and 4 deletions
|
@ -13,6 +13,7 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Martin Oberhuber (Wind River) - [175262] IHost.getSystemType() should return IRSESystemType
|
* Martin Oberhuber (Wind River) - [175262] IHost.getSystemType() should return IRSESystemType
|
||||||
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
||||||
|
* Kevin Doyle (IBM) - [163883] Multiple filter strings are disabled
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.persistence.dom;
|
package org.eclipse.rse.internal.persistence.dom;
|
||||||
|
@ -28,7 +29,6 @@ import org.eclipse.rse.core.filters.ISystemFilterPoolReference;
|
||||||
import org.eclipse.rse.core.filters.ISystemFilterPoolReferenceManager;
|
import org.eclipse.rse.core.filters.ISystemFilterPoolReferenceManager;
|
||||||
import org.eclipse.rse.core.filters.ISystemFilterString;
|
import org.eclipse.rse.core.filters.ISystemFilterString;
|
||||||
import org.eclipse.rse.core.model.IHost;
|
import org.eclipse.rse.core.model.IHost;
|
||||||
import org.eclipse.rse.core.model.IProperty;
|
|
||||||
import org.eclipse.rse.core.model.IPropertySet;
|
import org.eclipse.rse.core.model.IPropertySet;
|
||||||
import org.eclipse.rse.core.model.IPropertyType;
|
import org.eclipse.rse.core.model.IPropertyType;
|
||||||
import org.eclipse.rse.core.model.IRSEModelObject;
|
import org.eclipse.rse.core.model.IRSEModelObject;
|
||||||
|
@ -201,9 +201,24 @@ public class RSEDOMExporter implements IRSEDOMExporter {
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_STRING_CASE_SENSITIVE, getBooleanString(filterPool.isSetStringsCaseSensitive()));
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_STRING_CASE_SENSITIVE, getBooleanString(filterPool.isSetStringsCaseSensitive()));
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_SUPPORTS_DUPLICATE_FILTER_STRINGS, getBooleanString(filterPool.supportsDuplicateFilterStrings()));
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_SUPPORTS_DUPLICATE_FILTER_STRINGS, getBooleanString(filterPool.supportsDuplicateFilterStrings()));
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_RELEASE, Integer.toString(filterPool.getRelease()));
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_RELEASE, Integer.toString(filterPool.getRelease()));
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_SINGLE_FILTER_STRING_ONLY, getBooleanString(filterPool.isSetSingleFilterStringOnly()));
|
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_OWNING_PARENT_NAME, filterPool.getOwningParentName());
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_OWNING_PARENT_NAME, filterPool.getOwningParentName());
|
||||||
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_NON_RENAMABLE, getBooleanString(filterPool.isNonRenamable()));
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_NON_RENAMABLE, getBooleanString(filterPool.isNonRenamable()));
|
||||||
|
|
||||||
|
boolean isSingleFilterStringOnly = false;
|
||||||
|
boolean isSingleFilterStringOnlyESet = filterPool.isSetSingleFilterStringOnly();
|
||||||
|
|
||||||
|
// if ESet is true then calling isSingleFilterStringOnly() will return
|
||||||
|
// the value stored in the filter pool and not in the fp manager
|
||||||
|
// in the false case isSingleFilterStringOnly should be false as that what it is by default
|
||||||
|
if (isSingleFilterStringOnlyESet) {
|
||||||
|
isSingleFilterStringOnly = filterPool.isSingleFilterStringOnly();
|
||||||
|
} else {
|
||||||
|
isSingleFilterStringOnly = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
node.addAttribute("singleFilterStringOnlyESet", getBooleanString(isSingleFilterStringOnlyESet)); //$NON-NLS-1$
|
||||||
|
node.addAttribute(IRSEDOMConstants.ATTRIBUTE_SINGLE_FILTER_STRING_ONLY, getBooleanString(isSingleFilterStringOnly));
|
||||||
|
|
||||||
}
|
}
|
||||||
ISystemFilter[] filters = filterPool.getSystemFilters();
|
ISystemFilter[] filters = filterPool.getSystemFilters();
|
||||||
for (int i = 0; i < filters.length; i++) {
|
for (int i = 0; i < filters.length; i++) {
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
||||||
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
||||||
* Martin Oberhuber (Wind River) - [175680] Deprecate obsolete ISystemRegistry methods
|
* Martin Oberhuber (Wind River) - [175680] Deprecate obsolete ISystemRegistry methods
|
||||||
|
* Kevin Doyle (IBM) - [163883] Multiple filter strings are disabled
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.persistence.dom;
|
package org.eclipse.rse.internal.persistence.dom;
|
||||||
|
@ -353,7 +354,21 @@ public class RSEDOMImporter {
|
||||||
boolean isSetStringsCaseSensitive = getBooleanValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_STRING_CASE_SENSITIVE).getValue());
|
boolean isSetStringsCaseSensitive = getBooleanValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_STRING_CASE_SENSITIVE).getValue());
|
||||||
boolean isSetSupportsDuplicateFilterStrings = getBooleanValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_SUPPORTS_DUPLICATE_FILTER_STRINGS).getValue());
|
boolean isSetSupportsDuplicateFilterStrings = getBooleanValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_SUPPORTS_DUPLICATE_FILTER_STRINGS).getValue());
|
||||||
int release = getIntegerValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_RELEASE).getValue());
|
int release = getIntegerValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_RELEASE).getValue());
|
||||||
boolean isSetSingleFilterStringOnly = getBooleanValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_SINGLE_FILTER_STRING_ONLY).getValue());
|
|
||||||
|
// Since old profiles won't have an "singleFilterStringOnlyESet" attribute
|
||||||
|
// we must give it a default value.
|
||||||
|
// False has been chosen because if the persistence is not correct then we
|
||||||
|
// don't know what the proper value should be, so
|
||||||
|
// we want it to check with the filter pool manager to decide
|
||||||
|
// if multi filter strings are allowed
|
||||||
|
boolean isSingleFilterStringOnlyESet = false;
|
||||||
|
boolean isSetSingleFilterStringOnly = false;
|
||||||
|
RSEDOMNodeAttribute attribute = node.getAttribute("singleFilterStringOnlyESet"); //$NON-NLS-1$
|
||||||
|
if (attribute != null) {
|
||||||
|
isSingleFilterStringOnlyESet = getBooleanValue(attribute.getValue());
|
||||||
|
isSetSingleFilterStringOnly = getBooleanValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_SINGLE_FILTER_STRING_ONLY).getValue());
|
||||||
|
}
|
||||||
|
|
||||||
String owningParentName = node.getAttribute(IRSEDOMConstants.ATTRIBUTE_OWNING_PARENT_NAME).getValue();
|
String owningParentName = node.getAttribute(IRSEDOMConstants.ATTRIBUTE_OWNING_PARENT_NAME).getValue();
|
||||||
boolean isNonRenamable = getBooleanValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_NON_RENAMABLE).getValue());
|
boolean isNonRenamable = getBooleanValue(node.getAttribute(IRSEDOMConstants.ATTRIBUTE_NON_RENAMABLE).getValue());
|
||||||
|
|
||||||
|
@ -379,7 +394,16 @@ public class RSEDOMImporter {
|
||||||
filterPool.setStringsCaseSensitive(isSetStringsCaseSensitive);
|
filterPool.setStringsCaseSensitive(isSetStringsCaseSensitive);
|
||||||
filterPool.setSupportsDuplicateFilterStrings(isSetSupportsDuplicateFilterStrings);
|
filterPool.setSupportsDuplicateFilterStrings(isSetSupportsDuplicateFilterStrings);
|
||||||
filterPool.setRelease(release);
|
filterPool.setRelease(release);
|
||||||
filterPool.setSingleFilterStringOnly(isSetSingleFilterStringOnly);
|
|
||||||
|
// if single filter string only has been set in the past then set
|
||||||
|
// the value to the persisted one which will set ESet to true
|
||||||
|
// In the false case we don't do anything because the persistence
|
||||||
|
// could be messed up or ESet has never been set before
|
||||||
|
// in which case single filter string only should be false
|
||||||
|
if (isSingleFilterStringOnlyESet) {
|
||||||
|
filterPool.setSingleFilterStringOnly(isSetSingleFilterStringOnly);
|
||||||
|
}
|
||||||
|
|
||||||
filterPool.setOwningParentName(owningParentName);
|
filterPool.setOwningParentName(owningParentName);
|
||||||
filterPool.setNonRenamable(isNonRenamable);
|
filterPool.setNonRenamable(isNonRenamable);
|
||||||
// filterPool.wasRestored();
|
// filterPool.wasRestored();
|
||||||
|
|
Loading…
Add table
Reference in a new issue