Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorAndrew Gvozdev2012-05-04 22:33:09 +0000
committerAndrew Gvozdev2012-05-04 22:35:17 +0000
commitd2c19fcd47de828faef36593bce200b1226eb8af (patch)
treec390dd0d3a1df34187ebb66b40c44c175e30e224 /core
parenta5fd3894d10a265185f60c0555fc36d619cdbaca (diff)
downloadorg.eclipse.cdt-d2c19fcd47de828faef36593bce200b1226eb8af.tar.gz
org.eclipse.cdt-d2c19fcd47de828faef36593bce200b1226eb8af.tar.xz
org.eclipse.cdt-d2c19fcd47de828faef36593bce200b1226eb8af.zip
bug 376592: [sd90] Extend BuildDefinitions to allow defining language settings providers
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/ScannerDiscoveryLegacySupport.java52
-rw-r--r--core/org.eclipse.cdt.ui/plugin.properties1
-rw-r--r--core/org.eclipse.cdt.ui/plugin.xml4
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java6
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java4
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProvidersPage.java5
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/CDTPrefUtil.java147
7 files changed, 126 insertions, 93 deletions
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/ScannerDiscoveryLegacySupport.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/ScannerDiscoveryLegacySupport.java
index c8617a3fa56..8bf5b3832b1 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/ScannerDiscoveryLegacySupport.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/ScannerDiscoveryLegacySupport.java
@@ -12,7 +12,9 @@
package org.eclipse.cdt.core.language.settings.providers;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.model.CoreModel;
@@ -41,20 +43,22 @@ public class ScannerDiscoveryLegacySupport {
/** ID of MBS language settings provider (from org.eclipse.cdt.managedbuilder.core) */
public static final String MBS_LANGUAGE_SETTINGS_PROVIDER_ID = "org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider"; //$NON-NLS-1$
- private static String USE_LANGUAGE_SETTINGS_PROVIDERS_PREFERENCE = "enabled"; //$NON-NLS-1$
-// the default needs to be "false" for legacy projects to be open with old SD enabled for MBS provider
- private static boolean USE_LANGUAGE_SETTINGS_PROVIDERS_DEFAULT = false;
- private static final String PREFERENCES_QUALIFIER = CCorePlugin.PLUGIN_ID;
- private static final String LANGUAGE_SETTINGS_PROVIDERS_NODE = "languageSettingsProviders"; //$NON-NLS-1$
+ private static String DISABLE_LSP_PREFERENCE = "language.settings.providers.disabled"; //$NON-NLS-1$
+ // the default for project needs to be "disabled" - for legacy projects to be open with old SD enabled for MBS provider
+ private static boolean DISABLE_LSP_DEFAULT_PROJECT = true;
+ private static boolean DISABLE_LSP_DEFAULT_WORKSPACE = false;
+ private static final String PREFERENCES_QUALIFIER_CCORE = CCorePlugin.PLUGIN_ID;
+
+ private static Map<String, String> legacyProfiles = null;
/**
* Get preferences node for org.eclipse.cdt.core.
*/
private static Preferences getPreferences(IProject project) {
if (project == null) {
- return InstanceScope.INSTANCE.getNode(PREFERENCES_QUALIFIER).node(LANGUAGE_SETTINGS_PROVIDERS_NODE);
+ return InstanceScope.INSTANCE.getNode(PREFERENCES_QUALIFIER_CCORE);
} else {
- return new LocalProjectScope(project).getNode(PREFERENCES_QUALIFIER).node(LANGUAGE_SETTINGS_PROVIDERS_NODE);
+ return new LocalProjectScope(project).getNode(PREFERENCES_QUALIFIER_CCORE);
}
}
@@ -68,7 +72,8 @@ public class ScannerDiscoveryLegacySupport {
*/
public static boolean isLanguageSettingsProvidersFunctionalityEnabled(IProject project) {
Preferences pref = getPreferences(project);
- return pref.getBoolean(USE_LANGUAGE_SETTINGS_PROVIDERS_PREFERENCE, USE_LANGUAGE_SETTINGS_PROVIDERS_DEFAULT);
+ boolean defaultValue = project != null ? DISABLE_LSP_DEFAULT_PROJECT : DISABLE_LSP_DEFAULT_WORKSPACE;
+ return !pref.getBoolean(DISABLE_LSP_PREFERENCE, defaultValue);
}
/**
@@ -81,7 +86,7 @@ public class ScannerDiscoveryLegacySupport {
*/
public static void setLanguageSettingsProvidersFunctionalityEnabled(IProject project, boolean value) {
Preferences pref = getPreferences(project);
- pref.putBoolean(USE_LANGUAGE_SETTINGS_PROVIDERS_PREFERENCE, value);
+ pref.putBoolean(DISABLE_LSP_PREFERENCE, !value);
try {
pref.flush();
} catch (BackingStoreException e) {
@@ -147,4 +152,33 @@ public class ScannerDiscoveryLegacySupport {
return providers;
}
+ /**
+ * Returns the values of scanner discovery profiles (scannerConfigDiscoveryProfileId) which were deprecated
+ * and replaced with language settings providers in plugin.xml.
+ * This (temporary) function serves as fail-safe switch during the transition.
+ *
+ * @param id - can be id of either org.eclipse.cdt.managedbuilder.internal.core.InputType
+ * or org.eclipse.cdt.managedbuilder.internal.core.ToolChain.
+ * @return legacy scannerConfigDiscoveryProfileId.
+ */
+ @SuppressWarnings("nls")
+ public static String getDeprecatedLegacyProfiles(String id) {
+ if (legacyProfiles == null) {
+ legacyProfiles = new HashMap<String, String>();
+
+ // InputTypes
+ legacyProfiles.put("cdt.managedbuild.tool.gnu.c.compiler.input", "org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC|org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile");
+ legacyProfiles.put("cdt.managedbuild.tool.gnu.cpp.compiler.input", "org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP|org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile");
+ legacyProfiles.put("cdt.managedbuild.tool.gnu.c.compiler.input.cygwin", "org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC");
+ legacyProfiles.put("cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin", "org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP");
+ legacyProfiles.put("cdt.managedbuild.tool.xlc.c.compiler.input", "org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile");
+ legacyProfiles.put("cdt.managedbuild.tool.xlc.cpp.c.compiler.input", "org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile");
+ legacyProfiles.put("cdt.managedbuild.tool.xlc.cpp.compiler.input", "org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfileCPP");
+
+ // Toolchains
+ }
+
+ return legacyProfiles.get(id);
+ }
+
}
diff --git a/core/org.eclipse.cdt.ui/plugin.properties b/core/org.eclipse.cdt.ui/plugin.properties
index c840921cb70..8551271a582 100644
--- a/core/org.eclipse.cdt.ui/plugin.properties
+++ b/core/org.eclipse.cdt.ui/plugin.properties
@@ -231,6 +231,7 @@ ExcludeAction.label=Exclude from Build...
BuildConfigurationActionSet.descr=Build active configuration for the current project
BuildLoggingPreferencePage.name=Logging
+LanguageSettingsProvidersPropertyPage.name=Preprocessor Include Paths, Macros etc.
# Common Editor ruler actions
AddTask.label=Add &Task...
diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml
index 6bb38870bdc..2027fdebb30 100644
--- a/core/org.eclipse.cdt.ui/plugin.xml
+++ b/core/org.eclipse.cdt.ui/plugin.xml
@@ -3370,7 +3370,7 @@
</enabledWhen>
</page>
<page
- name="Preprocessor Include Paths, Macros etc."
+ name="%LanguageSettingsProvidersPropertyPage.name"
id="org.eclipse.cdt.ui.language.settings"
class="org.eclipse.cdt.internal.ui.language.settings.providers.LanguageSettingsProvidersPage"
category="org.eclipse.cdt.ui.newui.Page_head_general">
@@ -3378,7 +3378,7 @@
<adapt type="org.eclipse.core.resources.IResource">
<and>
<test property="org.eclipse.core.resources.projectNature" value="org.eclipse.cdt.core.cnature"/>
- <test property="org.eclipse.cdt.ui.checkPreference" value="org.eclipse.cdt.ui:properties.providers.tab.disable=false"/>
+ <test property="org.eclipse.cdt.ui.checkPreference" value="org.eclipse.cdt.core:language.settings.providers.disabled=false"/>
</and>
</adapt>
</enabledWhen>
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java
index f708569a2bb..dff8d314d3f 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java
@@ -47,6 +47,7 @@ import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvide
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsBaseProvider;
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
+import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
import org.eclipse.cdt.core.model.ILanguage;
import org.eclipse.cdt.core.model.LanguageManager;
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
@@ -56,7 +57,6 @@ import org.eclipse.cdt.core.settings.model.ICSettingEntry;
import org.eclipse.cdt.ui.CDTSharedImages;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.newui.AbstractCPropertyTab;
-import org.eclipse.cdt.ui.newui.CDTPrefUtil;
import org.eclipse.cdt.internal.ui.newui.LanguageSettingsImages;
import org.eclipse.cdt.internal.ui.newui.Messages;
@@ -1054,7 +1054,7 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
List<ILanguageSettingsProvider> newProviders = new ArrayList<ILanguageSettingsProvider>(oldProviders.size());
// clear entries for a given resource for all languages where applicable
-providers: for (ILanguageSettingsProvider provider : oldProviders) {
+ providers: for (ILanguageSettingsProvider provider : oldProviders) {
ILanguageSettingsEditableProvider providerCopy = null;
if (provider instanceof ILanguageSettingsEditableProvider) {
for (TreeItem langItems : treeLanguages.getItems()) {
@@ -1113,7 +1113,7 @@ providers: for (ILanguageSettingsProvider provider : oldProviders) {
@Override
public boolean canBeVisible() {
- if (CDTPrefUtil.getBool(LanguageSettingsProvidersPage.KEY_NO_SHOW_PROVIDERS)) {
+ if (!ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(null)) {
return false;
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java
index 0e81a9b7663..6ec74419583 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java
@@ -49,6 +49,7 @@ import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvide
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsSerializableProvider;
+import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
import org.eclipse.cdt.ui.CDTSharedImages;
@@ -56,7 +57,6 @@ import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.dialogs.ICOptionPage;
import org.eclipse.cdt.ui.language.settings.providers.AbstractLanguageSettingProviderOptionPage;
import org.eclipse.cdt.ui.newui.AbstractCPropertyTab;
-import org.eclipse.cdt.ui.newui.CDTPrefUtil;
import org.eclipse.cdt.utils.ui.controls.TabFolderLayout;
import org.eclipse.cdt.internal.ui.newui.Messages;
@@ -1161,7 +1161,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
@Override
public boolean canBeVisible() {
- if (CDTPrefUtil.getBool(LanguageSettingsProvidersPage.KEY_NO_SHOW_PROVIDERS)) {
+ if (!ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(null)) {
return false;
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProvidersPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProvidersPage.java
index 84f5d735386..4c3c33cc268 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProvidersPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProvidersPage.java
@@ -24,11 +24,6 @@ import org.eclipse.cdt.ui.newui.ICPropertyTab;
* @noinstantiate This class is not intended to be instantiated by clients.
*/
public class LanguageSettingsProvidersPage extends AbstractPage {
- /** @since 5.4 */ // temporary key, subject to removal
- public static final String KEY_NO_SHOW_PROVIDERS = "properties.providers.tab.disable"; //$NON-NLS-1$
- /** @since 5.4 */ // temporary key, subject to removal
- public static final String KEY_NEWSD = "wizard.try.new.sd.enable"; //$NON-NLS-1$
-
private static boolean isLanguageSettingsProvidersEnabled = false;
private static IProject project = null;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/CDTPrefUtil.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/CDTPrefUtil.java
index 4422ba202a0..6984fb9f3fa 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/CDTPrefUtil.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/CDTPrefUtil.java
@@ -40,6 +40,8 @@ public class CDTPrefUtil {
public static final String KEY_EXPORT = "properties.export.page.enable"; //$NON-NLS-1$
/** @since 5.2 Show the "Include Files" settings entry tab */
public static final String KEY_SHOW_INC_FILES = "properties.includefiles.page.enable"; //$NON-NLS-1$
+ /** @since 5.4 Show the "Scanner Discovery" tab*/
+ public static final String KEY_SHOW_SD = "properties.sd.page.enable"; //$NON-NLS-1$
/** @since 5.2 */
public static final String KEY_TIPBOX = "properties.option.tipbox.enable"; //$NON-NLS-1$
// string keys
@@ -47,37 +49,37 @@ public class CDTPrefUtil {
public static final String KEY_CONFSET = "workingsets.selected.configs"; //$NON-NLS-1$
// integer keys
public static final String KEY_POSSAVE = "properties.save.position"; //$NON-NLS-1$
- public static final int POSITION_SAVE_SIZE = 0;
- public static final int POSITION_SAVE_NONE = 2;
- public static final int POSITION_SAVE_BOTH = 3;
-
+ public static final int POSITION_SAVE_SIZE = 0;
+ public static final int POSITION_SAVE_NONE = 2;
+ public static final int POSITION_SAVE_BOTH = 3;
+
public static final String KEY_DISC_NAMES = "properties.discovery.naming"; //$NON-NLS-1$
- public static final int DISC_NAMING_UNIQUE_OR_BOTH = 0;
- public static final int DISC_NAMING_UNIQUE_OR_IDS = 1;
- public static final int DISC_NAMING_ALWAYS_BOTH = 2;
- public static final int DISC_NAMING_ALWAYS_IDS = 3;
- public static final int DISC_NAMING_DEFAULT = DISC_NAMING_UNIQUE_OR_BOTH;
-
+ public static final int DISC_NAMING_UNIQUE_OR_BOTH = 0;
+ public static final int DISC_NAMING_UNIQUE_OR_IDS = 1;
+ public static final int DISC_NAMING_ALWAYS_BOTH = 2;
+ public static final int DISC_NAMING_ALWAYS_IDS = 3;
+ public static final int DISC_NAMING_DEFAULT = DISC_NAMING_UNIQUE_OR_BOTH;
+
/** Property key used for string list display mode for multi-configuration edits (conjunction/disjunction) */
public static final String KEY_DMODE = "properties.multi.displ.mode"; //$NON-NLS-1$
- /** Conjunction implies showing only common elements (intersection) */
- public static final int DMODE_CONJUNCTION = 1;
- /** Disjunction implies showing all elements (union) */
- public static final int DMODE_DISJUNCTION = 2;
-
+ /** Conjunction implies showing only common elements (intersection) */
+ public static final int DMODE_CONJUNCTION = 1;
+ /** Disjunction implies showing all elements (union) */
+ public static final int DMODE_DISJUNCTION = 2;
+
/** Property key used for string list write mode for multi-configuration edits (modify/replace) */
public static final String KEY_WMODE = "properties.multi.write.mode"; //$NON-NLS-1$
- /** Modify implies changing only given elements and not changing any others */
- public static final int WMODE_MODIFY = 4;
- /** Replace implies replacing the whole list with the given one, overwriting old entries */
- public static final int WMODE_REPLACE = 8;
-
+ /** Modify implies changing only given elements and not changing any others */
+ public static final int WMODE_MODIFY = 4;
+ /** Replace implies replacing the whole list with the given one, overwriting old entries */
+ public static final int WMODE_REPLACE = 8;
+
public static final String NULL = "NULL"; //$NON-NLS-1$
private static final IPreferenceStore pref = CUIPlugin.getDefault().getPreferenceStore();
private static final String DELIMITER = " "; //$NON-NLS-1$
public static final String CONFSETDEL = "\f"; //$NON-NLS-1$
private static LinkedList<String> preferredTCs = null;
-
+
public static final Object[] EMPTY_ARRAY = new Object[0];
// low-level methods
@@ -93,40 +95,40 @@ public class CDTPrefUtil {
preferredTCs = new LinkedList<String>(Arrays.asList(getStr(KEY_PREFTC).split(DELIMITER)));
}
public static List<String> getPreferredTCs() {
- if (preferredTCs == null) readPreferredTCs();
- return preferredTCs;
+ if (preferredTCs == null) readPreferredTCs();
+ return preferredTCs;
}
- public static void delPreferredTC(String s) {
- if (preferredTCs == null) readPreferredTCs();
- preferredTCs.remove(s);
+ public static void delPreferredTC(String s) {
+ if (preferredTCs == null) readPreferredTCs();
+ preferredTCs.remove(s);
}
public static void addPreferredTC(String s) {
- if (preferredTCs == null) readPreferredTCs();
- if (!preferredTCs.contains(s)) preferredTCs.add(s);
+ if (preferredTCs == null) readPreferredTCs();
+ if (!preferredTCs.contains(s)) preferredTCs.add(s);
}
public static void cleanPreferredTCs() {
setStr(KEY_PREFTC, IPreferenceStore.STRING_DEFAULT_DEFAULT);
- readPreferredTCs();
+ readPreferredTCs();
}
public static void savePreferredTCs() {
- if (preferredTCs == null) return;
+ if (preferredTCs == null) return;
Iterator<String> it = preferredTCs.iterator();
- StringBuilder b = new StringBuilder();
+ StringBuilder b = new StringBuilder();
while (it.hasNext()) {
String s = it.next();
- if (s == null) continue;
+ if (s == null) continue;
b.append(s);
b.append(DELIMITER);
}
setStr(KEY_PREFTC, b.toString().trim());
}
-
+
/**
* Returns string list display mode for multi-configuration edits (conjunction/disjunction).
- *
+ *
* @return the mode which can be either {@link CDTPrefUtil#DMODE_CONJUNCTION} (default value)
* or else {@link CDTPrefUtil#DMODE_DISJUNCTION}.
- *
+ *
* @since 5.3
*/
public static int getMultiCfgStringListDisplayMode() {
@@ -136,25 +138,25 @@ public class CDTPrefUtil {
}
return mode;
}
-
+
/**
* Sets string list display mode for multi-configuration edits (conjunction/disjunction).
- *
+ *
* @param mode must be either {@link CDTPrefUtil#DMODE_CONJUNCTION}
* or {@link CDTPrefUtil#DMODE_DISJUNCTION}.
- *
+ *
* @since 5.3
*/
public static void setMultiCfgStringListDisplayMode(int mode) {
setInt(KEY_DMODE, mode);
}
-
+
/**
* Returns string list write mode for multi-configuration edits (modify/replace).
- *
+ *
* @return the mode which can be either {@link CDTPrefUtil#WMODE_MODIFY} (default value)
* or else {@link CDTPrefUtil#WMODE_REPLACE}.
- *
+ *
* @since 5.3
*/
public static int getMultiCfgStringListWriteMode() {
@@ -164,19 +166,19 @@ public class CDTPrefUtil {
}
return mode;
}
-
+
/**
* Sets string list write mode for multi-configuration edits (modify/replace).
- *
+ *
* @param mode must be either {@link CDTPrefUtil#WMODE_MODIFY}
* or {@link CDTPrefUtil#WMODE_REPLACE}.
- *
+ *
* @since 5.3
*/
public static void setMultiCfgStringListWriteMode(int mode) {
setInt(KEY_WMODE, mode);
}
-
+
/**
* @deprecated as of CDT 8.0. Use {@link StringListModeControl} to display string list modes.
*/
@@ -185,15 +187,15 @@ public class CDTPrefUtil {
String s = null;
switch(getMultiCfgStringListDisplayMode()) {
case DMODE_CONJUNCTION:
- s = Messages.EnvironmentTab_17;
+ s = Messages.EnvironmentTab_17;
break;
case DMODE_DISJUNCTION:
- s = Messages.EnvironmentTab_18;
+ s = Messages.EnvironmentTab_18;
break;
}
- return Messages.EnvironmentTab_19 + s;
+ return Messages.EnvironmentTab_19 + s;
}
-
+
/**
* @deprecated as of CDT 8.0. Use {@link StringListModeControl} to display string list modes.
*/
@@ -202,15 +204,15 @@ public class CDTPrefUtil {
String s = null;
switch(getMultiCfgStringListWriteMode()) {
case WMODE_MODIFY:
- s = Messages.EnvironmentTab_24;
+ s = Messages.EnvironmentTab_24;
break;
case WMODE_REPLACE:
- s = Messages.EnvironmentTab_21;
+ s = Messages.EnvironmentTab_21;
break;
}
- return Messages.EnvironmentTab_22 + s;
+ return Messages.EnvironmentTab_22 + s;
}
-
+
/**
* Toggle string list display mode: conjunction <-> disjunction.
*/
@@ -240,39 +242,37 @@ public class CDTPrefUtil {
public static final String[] getStrListForDisplay(String[][] input) {
return getStrListForDisplay(input, getMultiCfgStringListDisplayMode());
}
-
+
private static final String[] getStrListForDisplay(String[][] input, int mode) {
Object[] ob = getListForDisplay(input, getMultiCfgStringListDisplayMode(), null);
String[] ss = new String[ob.length];
System.arraycopy(ob, 0, ss, 0, ob.length);
return ss;
}
-
+
public static final Object[] getListForDisplay(Object[][] input, Comparator<Object> cmp) {
return getListForDisplay(input, getMultiCfgStringListDisplayMode(), cmp);
}
/**
* Utility method forms string list
* according to current list display mode
- *
+ *
* @param input - array of string arrays
* @return
*/
private static final Object[] getListForDisplay(Object[][] input, int mode, Comparator<Object> cmp) {
if (input == null || input.length == 0)
return EMPTY_ARRAY;
+
if (input.length == 1) {
- return (input[0] == null) ?
- EMPTY_ARRAY :
- input[0];
+ return (input[0] == null) ? EMPTY_ARRAY : input[0];
}
Object[] s1 = input[0];
- if (s1 == null ||
- s1.length == 0)
+ if (s1 == null || s1.length == 0)
return EMPTY_ARRAY;
- if (getMultiCfgStringListDisplayMode() == DMODE_CONJUNCTION)
- {
+
+ if (getMultiCfgStringListDisplayMode() == DMODE_CONJUNCTION) {
ArrayList<Object> lst = new ArrayList<Object>();
for (int i=0; i<s1.length; i++) {
if (s1[i] == null)
@@ -280,10 +280,12 @@ public class CDTPrefUtil {
boolean found = true;
for (int k = 1; k<input.length; k++) {
Object[] s2 = input[k];
- if (s2 == null || s2.length == 0)
+ if (s2 == null || s2.length == 0) {
return EMPTY_ARRAY;
- if (i == 0)
+ }
+ if (i == 0) {
Arrays.sort(s2, cmp);
+ }
if (Arrays.binarySearch(s2, s1[i], cmp) < 0) {
found = false;
break;
@@ -297,17 +299,18 @@ public class CDTPrefUtil {
}
TreeSet<Object> lst = new TreeSet<Object>(cmp); // set, to avoid doubles
for (Object[] element : input) {
- if (element == null ||
- element.length == 0)
+ if (element == null || element.length == 0) {
continue;
- for (Object element2 : element)
+ }
+ for (Object element2 : element) {
lst.add(element2);
+ }
}
s1 = lst.toArray();
Arrays.sort(s1, cmp);
return s1;
}
-
+
/**
* @deprecated Use the {@link WorkingSetConfigurationManager} class, instead.
*/
@@ -315,15 +318,15 @@ public class CDTPrefUtil {
public static List<String> readConfigSets() {
return new LinkedList<String>(Arrays.asList(getStr(KEY_CONFSET).split(CONFSETDEL)));
}
-
+
/**
* @deprecated Use the {@link WorkingSetConfigurationManager} class, instead.
*/
@Deprecated
public static void saveConfigSets(List<String> out) {
- StringBuilder b = new StringBuilder();
+ StringBuilder b = new StringBuilder();
for (String s : out) {
- if (s == null) continue;
+ if (s == null) continue;
b.append(s);
b.append(CONFSETDEL);
}

Back to the top