mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-17 21:25:58 +02:00
Store entries in project settings folder, provider flag and UI
This commit is contained in:
parent
455dfb6541
commit
3d7d7d44d6
3 changed files with 110 additions and 9 deletions
|
@ -61,7 +61,8 @@ public class LanguageSettingsSerializableTests extends TestCase {
|
||||||
private static final String PROVIDER_NAME_1 = "test.provider.1.name";
|
private static final String PROVIDER_NAME_1 = "test.provider.1.name";
|
||||||
private static final String PROVIDER_NAME_2 = "test.provider.2.name";
|
private static final String PROVIDER_NAME_2 = "test.provider.2.name";
|
||||||
private static final String CUSTOM_PARAMETER = "custom.parameter";
|
private static final String CUSTOM_PARAMETER = "custom.parameter";
|
||||||
|
private static final String ATTR_STORE_ENTRIES = "store-entries";
|
||||||
|
private static final String VALUE_PROJECT = "project";
|
||||||
private static final String ELEM_TEST = "test";
|
private static final String ELEM_TEST = "test";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -119,6 +120,11 @@ public class LanguageSettingsSerializableTests extends TestCase {
|
||||||
assertEquals(PROVIDER_NAME_2, mockProvider.getName());
|
assertEquals(PROVIDER_NAME_2, mockProvider.getName());
|
||||||
mockProvider.setCustomParameter(CUSTOM_PARAMETER);
|
mockProvider.setCustomParameter(CUSTOM_PARAMETER);
|
||||||
assertEquals(CUSTOM_PARAMETER, mockProvider.getCustomParameter());
|
assertEquals(CUSTOM_PARAMETER, mockProvider.getCustomParameter());
|
||||||
|
|
||||||
|
assertEquals(false, mockProvider.isEntriesStorageWithProject());
|
||||||
|
mockProvider.setEntriesStorageWithProject(true);
|
||||||
|
assertEquals(true, mockProvider.isEntriesStorageWithProject());
|
||||||
|
|
||||||
mockProvider.setLanguageScope(languages);
|
mockProvider.setLanguageScope(languages);
|
||||||
assertEquals(languages, mockProvider.getLanguageScope());
|
assertEquals(languages, mockProvider.getLanguageScope());
|
||||||
mockProvider.setLanguageScope(null);
|
mockProvider.setLanguageScope(null);
|
||||||
|
@ -195,6 +201,31 @@ public class LanguageSettingsSerializableTests extends TestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
public void testStoreEntriesWithProject() throws Exception {
|
||||||
|
Element elementProvider;
|
||||||
|
{
|
||||||
|
// create provider with custom parameter
|
||||||
|
LanguageSettingsSerializable provider = new LanguageSettingsSerializable(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
|
assertEquals(false, provider.isEntriesStorageWithProject());
|
||||||
|
provider.setEntriesStorageWithProject(true);
|
||||||
|
assertEquals(true, provider.isEntriesStorageWithProject());
|
||||||
|
|
||||||
|
Document doc = XmlUtil.newDocument();
|
||||||
|
Element rootElement = XmlUtil.appendElement(doc, ELEM_TEST);
|
||||||
|
elementProvider = provider.serialize(rootElement);
|
||||||
|
String xmlString = XmlUtil.toString(doc);
|
||||||
|
assertTrue(xmlString.contains(ATTR_STORE_ENTRIES));
|
||||||
|
assertTrue(xmlString.contains(VALUE_PROJECT));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// re-load and check custom parameter of the newly loaded provider
|
||||||
|
LanguageSettingsSerializable provider = new LanguageSettingsSerializable(elementProvider);
|
||||||
|
assertEquals(true, provider.isEntriesStorageWithProject());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public void testLanguages() throws Exception {
|
public void testLanguages() throws Exception {
|
||||||
|
@ -1012,6 +1043,8 @@ public class LanguageSettingsSerializableTests extends TestCase {
|
||||||
LanguageSettingsSerializable provider1 = new LanguageSettingsSerializable(PROVIDER_1, PROVIDER_NAME_1);
|
LanguageSettingsSerializable provider1 = new LanguageSettingsSerializable(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
provider1.setLanguageScope(sampleLanguages);
|
provider1.setLanguageScope(sampleLanguages);
|
||||||
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
||||||
|
assertEquals(false, provider1.isEntriesStorageWithProject());
|
||||||
|
provider1.setEntriesStorageWithProject(true);
|
||||||
provider1.setSettingEntries(MOCK_CFG, MOCK_RC, LANG_ID, sampleEntries_1);
|
provider1.setSettingEntries(MOCK_CFG, MOCK_RC, LANG_ID, sampleEntries_1);
|
||||||
provider1.setSettingEntries(null, null, LANG_ID, sampleEntries_2);
|
provider1.setSettingEntries(null, null, LANG_ID, sampleEntries_2);
|
||||||
|
|
||||||
|
@ -1034,6 +1067,12 @@ public class LanguageSettingsSerializableTests extends TestCase {
|
||||||
assertFalse(provider1.hashCode()==provider2.hashCode());
|
assertFalse(provider1.hashCode()==provider2.hashCode());
|
||||||
|
|
||||||
provider2.setCustomParameter(CUSTOM_PARAMETER);
|
provider2.setCustomParameter(CUSTOM_PARAMETER);
|
||||||
|
assertFalse(provider1.equals(provider2));
|
||||||
|
assertFalse(provider1.hashCode()==provider2.hashCode());
|
||||||
|
|
||||||
|
provider2.setEntriesStorageWithProject(true);
|
||||||
|
|
||||||
|
// All set now, so they should be equal
|
||||||
assertTrue(provider1.equals(provider2));
|
assertTrue(provider1.equals(provider2));
|
||||||
assertTrue(provider1.hashCode()==provider2.hashCode());
|
assertTrue(provider1.hashCode()==provider2.hashCode());
|
||||||
|
|
||||||
|
@ -1081,6 +1120,8 @@ public class LanguageSettingsSerializableTests extends TestCase {
|
||||||
LanguageSettingsSerializableMock provider1 = new LanguageSettingsSerializableMock(PROVIDER_1, PROVIDER_NAME_1);
|
LanguageSettingsSerializableMock provider1 = new LanguageSettingsSerializableMock(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
provider1.setLanguageScope(sampleLanguages);
|
provider1.setLanguageScope(sampleLanguages);
|
||||||
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
||||||
|
assertEquals(false, provider1.isEntriesStorageWithProject());
|
||||||
|
provider1.setEntriesStorageWithProject(true);
|
||||||
provider1.setSettingEntries(MOCK_CFG, MOCK_RC, LANG_ID, sampleEntries_1);
|
provider1.setSettingEntries(MOCK_CFG, MOCK_RC, LANG_ID, sampleEntries_1);
|
||||||
provider1.setSettingEntries(null, null, LANG_ID, sampleEntries_2);
|
provider1.setSettingEntries(null, null, LANG_ID, sampleEntries_2);
|
||||||
|
|
||||||
|
@ -1090,6 +1131,7 @@ public class LanguageSettingsSerializableTests extends TestCase {
|
||||||
assertTrue(provider1.equals(providerClone));
|
assertTrue(provider1.equals(providerClone));
|
||||||
assertTrue(provider1.getClass()==providerClone.getClass());
|
assertTrue(provider1.getClass()==providerClone.getClass());
|
||||||
assertEquals(provider1.getCustomParameter(), providerClone.getCustomParameter());
|
assertEquals(provider1.getCustomParameter(), providerClone.getCustomParameter());
|
||||||
|
assertEquals(provider1.isEntriesStorageWithProject(), providerClone.isEntriesStorageWithProject());
|
||||||
assertEquals(provider1.getLanguageScope().get(0), providerClone.getLanguageScope().get(0));
|
assertEquals(provider1.getLanguageScope().get(0), providerClone.getLanguageScope().get(0));
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> actual1 = providerClone.getSettingEntries(MOCK_CFG, MOCK_RC, LANG_ID);
|
List<ICLanguageSettingEntry> actual1 = providerClone.getSettingEntries(MOCK_CFG, MOCK_RC, LANG_ID);
|
||||||
|
@ -1126,6 +1168,8 @@ public class LanguageSettingsSerializableTests extends TestCase {
|
||||||
LanguageSettingsSerializableMock provider1 = new LanguageSettingsSerializableMock(PROVIDER_1, PROVIDER_NAME_1);
|
LanguageSettingsSerializableMock provider1 = new LanguageSettingsSerializableMock(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
provider1.setLanguageScope(sampleLanguages);
|
provider1.setLanguageScope(sampleLanguages);
|
||||||
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
||||||
|
assertEquals(false, provider1.isEntriesStorageWithProject());
|
||||||
|
provider1.setEntriesStorageWithProject(true);
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
entries.add(new CIncludePathEntry("path", 1));
|
entries.add(new CIncludePathEntry("path", 1));
|
||||||
|
@ -1137,6 +1181,7 @@ public class LanguageSettingsSerializableTests extends TestCase {
|
||||||
assertFalse(provider1.equals(providerClone));
|
assertFalse(provider1.equals(providerClone));
|
||||||
assertTrue(provider1.getClass()==providerClone.getClass());
|
assertTrue(provider1.getClass()==providerClone.getClass());
|
||||||
assertEquals(provider1.getCustomParameter(), providerClone.getCustomParameter());
|
assertEquals(provider1.getCustomParameter(), providerClone.getCustomParameter());
|
||||||
|
assertEquals(provider1.isEntriesStorageWithProject(), providerClone.isEntriesStorageWithProject());
|
||||||
assertEquals(provider1.getLanguageScope().get(0), providerClone.getLanguageScope().get(0));
|
assertEquals(provider1.getLanguageScope().get(0), providerClone.getLanguageScope().get(0));
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> actual = providerClone.getSettingEntries(null, null, null);
|
List<ICLanguageSettingEntry> actual = providerClone.getSettingEntries(null, null, null);
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009, 2010 Andrew Gvozdev (Quoin Inc.) and others.
|
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Andrew Gvozdev (Quoin Inc.) - initial API and implementation
|
* Andrew Gvozdev - initial API and implementation
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.core.language.settings.providers;
|
package org.eclipse.cdt.core.language.settings.providers;
|
||||||
|
@ -45,12 +45,15 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
|
||||||
private static final String ELEM_ENTRY = "entry"; //$NON-NLS-1$
|
private static final String ELEM_ENTRY = "entry"; //$NON-NLS-1$
|
||||||
private static final String ATTR_KIND = "kind"; //$NON-NLS-1$
|
private static final String ATTR_KIND = "kind"; //$NON-NLS-1$
|
||||||
private static final String ATTR_NAME = "name"; //$NON-NLS-1$
|
private static final String ATTR_NAME = "name"; //$NON-NLS-1$
|
||||||
|
private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
|
||||||
private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
|
private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
|
||||||
private static final String ATTR_PARAMETER = "parameter"; //$NON-NLS-1$
|
private static final String ATTR_PARAMETER = "parameter"; //$NON-NLS-1$
|
||||||
private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
private static final String ELEM_FLAG = "flag"; //$NON-NLS-1$
|
private static final String ELEM_FLAG = "flag"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
private static final String ATTR_STORE_ENTRIES = "store-entries"; //$NON-NLS-1$
|
||||||
|
private static final String VALUE_WORKSPACE = "workspace"; //$NON-NLS-1$
|
||||||
|
private static final String VALUE_PROJECT = "project"; //$NON-NLS-1$
|
||||||
|
|
||||||
private static WeakHashSet<List<ICLanguageSettingEntry>> lseListPool = new WeakHashSet<List<ICLanguageSettingEntry>>() {
|
private static WeakHashSet<List<ICLanguageSettingEntry>> lseListPool = new WeakHashSet<List<ICLanguageSettingEntry>>() {
|
||||||
@Override
|
@Override
|
||||||
public synchronized List<ICLanguageSettingEntry> add(List<ICLanguageSettingEntry> list) {
|
public synchronized List<ICLanguageSettingEntry> add(List<ICLanguageSettingEntry> list) {
|
||||||
|
@ -59,6 +62,7 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private boolean isEntriesStorageWithProject = false;
|
||||||
|
|
||||||
private Map<String, // languageId
|
private Map<String, // languageId
|
||||||
Map<String, // resource project path
|
Map<String, // resource project path
|
||||||
|
@ -117,11 +121,30 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
|
||||||
this.customParameter = customParameter;
|
this.customParameter = customParameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tells if language settings entries are persisted with the project (under .settings folder)
|
||||||
|
* or in workspace area. Persistence in the project area lets the entries migrate with the
|
||||||
|
* project.
|
||||||
|
*
|
||||||
|
* @return {@code true} if LSE persisted with the project or {@code false} if in the workspace.
|
||||||
|
*/
|
||||||
|
public boolean isEntriesStorageWithProject() {
|
||||||
|
return isEntriesStorageWithProject;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter to define where language settings are persisted.
|
||||||
|
* @param storeEntriesWithProject - {@code true} if with the project,
|
||||||
|
* {@code false} if in workspace area.
|
||||||
|
*/
|
||||||
|
public void setEntriesStorageWithProject(boolean storeEntriesWithProject) {
|
||||||
|
this.isEntriesStorageWithProject = storeEntriesWithProject;
|
||||||
|
}
|
||||||
|
|
||||||
public void clear() {
|
public void clear() {
|
||||||
fStorage.clear();
|
fStorage.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: look for refactoring this method
|
|
||||||
private void setSettingEntriesInternal(String rcProjectPath, String languageId, List<ICLanguageSettingEntry> entries) {
|
private void setSettingEntriesInternal(String rcProjectPath, String languageId, List<ICLanguageSettingEntry> entries) {
|
||||||
if (entries!=null) {
|
if (entries!=null) {
|
||||||
Map<String, List<ICLanguageSettingEntry>> langMap = fStorage.get(languageId);
|
Map<String, List<ICLanguageSettingEntry>> langMap = fStorage.get(languageId);
|
||||||
|
@ -217,6 +240,7 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
|
||||||
ATTR_NAME, getName(),
|
ATTR_NAME, getName(),
|
||||||
ATTR_CLASS, getClass().getCanonicalName(),
|
ATTR_CLASS, getClass().getCanonicalName(),
|
||||||
ATTR_PARAMETER, getCustomParameter(),
|
ATTR_PARAMETER, getCustomParameter(),
|
||||||
|
ATTR_STORE_ENTRIES, isEntriesStorageWithProject() ? VALUE_PROJECT : VALUE_WORKSPACE,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (languageScope!=null) {
|
if (languageScope!=null) {
|
||||||
|
@ -309,9 +333,12 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
|
||||||
String providerId = XmlUtil.determineAttributeValue(providerNode, ATTR_ID);
|
String providerId = XmlUtil.determineAttributeValue(providerNode, ATTR_ID);
|
||||||
String providerName = XmlUtil.determineAttributeValue(providerNode, ATTR_NAME);
|
String providerName = XmlUtil.determineAttributeValue(providerNode, ATTR_NAME);
|
||||||
String providerParameter = XmlUtil.determineAttributeValue(providerNode, ATTR_PARAMETER);
|
String providerParameter = XmlUtil.determineAttributeValue(providerNode, ATTR_PARAMETER);
|
||||||
|
String providerStoreEntries = XmlUtil.determineAttributeValue(providerNode, ATTR_STORE_ENTRIES);
|
||||||
|
|
||||||
this.setId(providerId);
|
this.setId(providerId);
|
||||||
this.setName(providerName);
|
this.setName(providerName);
|
||||||
this.setCustomParameter(providerParameter);
|
this.setCustomParameter(providerParameter);
|
||||||
|
this.setEntriesStorageWithProject(VALUE_PROJECT.equals(providerStoreEntries));
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> settings = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> settings = new ArrayList<ICLanguageSettingEntry>();
|
||||||
NodeList nodes = providerNode.getChildNodes();
|
NodeList nodes = providerNode.getChildNodes();
|
||||||
|
@ -456,6 +483,7 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
|
||||||
result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
|
result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
|
||||||
result = prime * result + ((languageScope == null) ? 0 : languageScope.hashCode());
|
result = prime * result + ((languageScope == null) ? 0 : languageScope.hashCode());
|
||||||
result = prime * result + ((customParameter == null) ? 0 : customParameter.hashCode());
|
result = prime * result + ((customParameter == null) ? 0 : customParameter.hashCode());
|
||||||
|
result = prime * result + (isEntriesStorageWithProject ? 0 : 1);
|
||||||
result = prime * result + ((fStorage == null) ? 0 : fStorage.hashCode());
|
result = prime * result + ((fStorage == null) ? 0 : fStorage.hashCode());
|
||||||
result = prime * result + getClass().hashCode();
|
result = prime * result + getClass().hashCode();
|
||||||
return result;
|
return result;
|
||||||
|
@ -504,6 +532,9 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
|
||||||
} else if (!customParameter.equals(other.customParameter))
|
} else if (!customParameter.equals(other.customParameter))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (isEntriesStorageWithProject!=other.isEntriesStorageWithProject)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (fStorage == null) {
|
if (fStorage == null) {
|
||||||
if (other.fStorage != null)
|
if (other.fStorage != null)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -206,6 +206,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shortcut for getting the currently selected provider.
|
* Shortcut for getting the currently selected provider.
|
||||||
|
* Do not use if you need to change provider's settings, use {@link #getWorkingCopy(String)}.
|
||||||
*/
|
*/
|
||||||
private ILanguageSettingsProvider getSelectedProvider() {
|
private ILanguageSettingsProvider getSelectedProvider() {
|
||||||
ILanguageSettingsProvider provider = null;
|
ILanguageSettingsProvider provider = null;
|
||||||
|
@ -333,7 +334,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called from globalProviderCheckBox listener
|
// Called from globalProviderCheckBox listener
|
||||||
private void toggleGlobalProvider(ILanguageSettingsProvider oldProvider, boolean toGlobal) {
|
private ILanguageSettingsProvider toggleGlobalProvider(ILanguageSettingsProvider oldProvider, boolean toGlobal) {
|
||||||
ILanguageSettingsProvider newProvider = null;
|
ILanguageSettingsProvider newProvider = null;
|
||||||
|
|
||||||
String id = oldProvider.getId();
|
String id = oldProvider.getId();
|
||||||
|
@ -356,7 +357,11 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||||
initializeOptionsPage(newProvider, cfgDescription);
|
initializeOptionsPage(newProvider, cfgDescription);
|
||||||
displaySelectedOptionPage();
|
displaySelectedOptionPage();
|
||||||
|
} else {
|
||||||
|
newProvider = oldProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return newProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void replaceSelectedProvider(ILanguageSettingsProvider newProvider) {
|
private void replaceSelectedProvider(ILanguageSettingsProvider newProvider) {
|
||||||
|
@ -398,8 +403,10 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
boolean isGlobal = globalProviderCheckBox.getSelection();
|
boolean isGlobal = globalProviderCheckBox.getSelection();
|
||||||
ILanguageSettingsProvider provider = getSelectedProvider();
|
ILanguageSettingsProvider provider = getSelectedProvider();
|
||||||
if (isGlobal != LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
if (isGlobal != LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
||||||
toggleGlobalProvider(provider, isGlobal);
|
provider = toggleGlobalProvider(provider, isGlobal);
|
||||||
}
|
}
|
||||||
|
projectStorageCheckBox.setSelection(provider instanceof LanguageSettingsSerializable
|
||||||
|
&& ((LanguageSettingsSerializable) provider).isEntriesStorageWithProject());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -410,7 +417,23 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
});
|
});
|
||||||
|
|
||||||
projectStorageCheckBox = new Button(groupOptionsPage, SWT.CHECK);
|
projectStorageCheckBox = new Button(groupOptionsPage, SWT.CHECK);
|
||||||
projectStorageCheckBox.setText("Store entries under project settings folder (supporting project miration)");
|
projectStorageCheckBox.setText("Store entries in project settings folder (supporting project miration)");
|
||||||
|
projectStorageCheckBox.addSelectionListener(new SelectionAdapter() {
|
||||||
|
@Override
|
||||||
|
public void widgetSelected(SelectionEvent e) {
|
||||||
|
boolean isWithProject = projectStorageCheckBox.getSelection();
|
||||||
|
ILanguageSettingsProvider provider = getWorkingCopy(getSelectedProvider().getId());
|
||||||
|
Assert.isTrue(provider instanceof LanguageSettingsSerializable);
|
||||||
|
((LanguageSettingsSerializable)provider).setEntriesStorageWithProject(isWithProject);
|
||||||
|
refreshItem(provider);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void widgetDefaultSelected(SelectionEvent e) {
|
||||||
|
widgetSelected(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
linkWorkspacePreferences = createLinkToPreferences(groupOptionsPage, 2);
|
linkWorkspacePreferences = createLinkToPreferences(groupOptionsPage, 2);
|
||||||
}
|
}
|
||||||
|
@ -581,6 +604,8 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
||||||
|
|
||||||
projectStorageCheckBox.setEnabled(!isGlobal);
|
projectStorageCheckBox.setEnabled(!isGlobal);
|
||||||
projectStorageCheckBox.setVisible(rawProvider instanceof LanguageSettingsSerializable);
|
projectStorageCheckBox.setVisible(rawProvider instanceof LanguageSettingsSerializable);
|
||||||
|
projectStorageCheckBox.setSelection(provider instanceof LanguageSettingsSerializable
|
||||||
|
&& ((LanguageSettingsSerializable)provider).isEntriesStorageWithProject());
|
||||||
|
|
||||||
boolean needPreferencesLink=isGlobal && currentOptionsPage!=null;
|
boolean needPreferencesLink=isGlobal && currentOptionsPage!=null;
|
||||||
// TODO: message
|
// TODO: message
|
||||||
|
|
Loading…
Add table
Reference in a new issue