From 32163b850878e062fb65986eca300ba0edbf08e2 Mon Sep 17 00:00:00 2001 From: Oleg Krasilnikov Date: Thu, 5 Apr 2007 10:55:46 +0000 Subject: [PATCH] Discovery page: show page names instead of profile IDs where possible Preferences: user can select naming rule for discovery profiles --- .../plugin.xml | 2 +- .../ui/preferences}/PropertyPageDefsTab.java | 62 +++++++++++--- .../ui/properties/DiscoveryTab.java | 81 ++++++++++++++++--- .../org/eclipse/cdt/ui/newui/CDTPrefUtil.java | 9 ++- .../cdt/ui/newui/PluginResources.properties | 5 ++ 5 files changed, 136 insertions(+), 23 deletions(-) rename {core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui => build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/preferences}/PropertyPageDefsTab.java (55%) diff --git a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml index cdab8712028..2ea626d2485 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml +++ b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml @@ -429,7 +429,7 @@ name="%Wizard.defaults" parent="org.eclipse.cdt.managedbuilder.ui.preferences.PrefPage_NewCDTWizard"/> diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/PropertyPageDefsTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/preferences/PropertyPageDefsTab.java similarity index 55% rename from core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/PropertyPageDefsTab.java rename to build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/preferences/PropertyPageDefsTab.java index cbe3dc50768..1cd10ae5afc 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/PropertyPageDefsTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/preferences/PropertyPageDefsTab.java @@ -8,23 +8,33 @@ * Contributors: * Intel Corporation - initial API and implementation *******************************************************************************/ -package org.eclipse.cdt.ui.newui; +package org.eclipse.cdt.managedbuilder.ui.preferences; +import org.eclipse.cdt.core.settings.model.ICResourceDescription; +import org.eclipse.cdt.ui.newui.AbstractCPropertyTab; +import org.eclipse.cdt.ui.newui.CDTPrefUtil; +import org.eclipse.cdt.ui.newui.UIMessages; import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; - -import org.eclipse.cdt.core.settings.model.ICResourceDescription; +import org.eclipse.swt.widgets.Group; public class PropertyPageDefsTab extends AbstractCPropertyTab { + private static final int SPACING = 5; // for radio buttons layout + private Button show_tree; - private Button show_mul; +// private Button show_mul; private Button show_mng; private Button show_sav; private Button show_tool; + private Button b_0; + private Button b_1; + private Button b_2; + private Button b_3; public void createControls(Composite parent) { super.createControls(parent); @@ -38,9 +48,9 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab { show_tree.setText(UIMessages.getString("PropertyPageDefsTab.1")); //$NON-NLS-1$ show_tree.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - show_mul = new Button(usercomp, SWT.CHECK); - show_mul.setText(UIMessages.getString("PropertyPageDefsTab.2")); //$NON-NLS-1$ - show_mul.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + // show_mul = new Button(usercomp, SWT.CHECK); + // show_mul.setText(UIMessages.getString("PropertyPageDefsTab.2")); //$NON-NLS-1$ + // show_mul.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); show_sav = new Button(usercomp, SWT.CHECK); show_sav.setText(UIMessages.getString("PropertyPageDefsTab.3")); //$NON-NLS-1$ @@ -50,28 +60,58 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab { show_tool.setText(UIMessages.getString("PropertyPageDefsTab.4")); //$NON-NLS-1$ show_tool.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + Group discGrp = new Group(usercomp, SWT.NONE); + discGrp.setText(UIMessages.getString("PropertyPageDefsTab.5")); //$NON-NLS-1$ + discGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + FillLayout fl = new FillLayout(SWT.VERTICAL); + fl.spacing = SPACING; + fl.marginHeight = SPACING; + fl.marginWidth = SPACING; + discGrp.setLayout(fl); + + b_0 = new Button(discGrp, SWT.RADIO); + b_0.setText(UIMessages.getString("PropertyPageDefsTab.6")); //$NON-NLS-1$ + b_1 = new Button(discGrp, SWT.RADIO); + b_1.setText(UIMessages.getString("PropertyPageDefsTab.7")); //$NON-NLS-1$ + b_2 = new Button(discGrp, SWT.RADIO); + b_2.setText(UIMessages.getString("PropertyPageDefsTab.8")); //$NON-NLS-1$ + b_3 = new Button(discGrp, SWT.RADIO); + b_3.setText(UIMessages.getString("PropertyPageDefsTab.9")); //$NON-NLS-1$ + show_tree.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_DTREE)); - show_mul.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_MULTI)); + // show_mul.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_MULTI)); show_mng.setSelection(!CDTPrefUtil.getBool(CDTPrefUtil.KEY_NOMNG)); show_sav.setSelection(!CDTPrefUtil.getBool(CDTPrefUtil.KEY_NOSAVE)); show_tool.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_TOOLM)); - show_mul.setVisible(false); // temporary + switch (CDTPrefUtil.getInt(CDTPrefUtil.KEY_DISC_NAMES)) { + case CDTPrefUtil.DISC_NAMING_UNIQUE_OR_BOTH: b_0.setSelection(true); break; + case CDTPrefUtil.DISC_NAMING_UNIQUE_OR_IDS: b_1.setSelection(true); break; + case CDTPrefUtil.DISC_NAMING_ALWAYS_BOTH: b_2.setSelection(true); break; + case CDTPrefUtil.DISC_NAMING_ALWAYS_IDS: b_3.setSelection(true); break; + } } protected void performOK() { CDTPrefUtil.setBool(CDTPrefUtil.KEY_DTREE, show_tree.getSelection()); - CDTPrefUtil.setBool(CDTPrefUtil.KEY_MULTI, show_mul.getSelection()); + // CDTPrefUtil.setBool(CDTPrefUtil.KEY_MULTI, show_mul.getSelection()); CDTPrefUtil.setBool(CDTPrefUtil.KEY_NOMNG, !show_mng.getSelection()); CDTPrefUtil.setBool(CDTPrefUtil.KEY_NOSAVE, !show_sav.getSelection()); CDTPrefUtil.setBool(CDTPrefUtil.KEY_TOOLM, show_tool.getSelection()); + int x = 0; + if (b_1.getSelection()) x = 1; + else if (b_2.getSelection()) x = 2; + else if (b_3.getSelection()) x = 3; + CDTPrefUtil.setInt(CDTPrefUtil.KEY_DISC_NAMES, x); } + protected void performDefaults() { show_tree.setSelection(false); - show_mul.setSelection(false); + // show_mul.setSelection(false); show_mng.setSelection(true); show_mng.setSelection(true); show_tool.setSelection(false); + b_0.setSelection(true); } protected void performApply(ICResourceDescription src, ICResourceDescription dst) { performOK(); } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java index f9ccff6829d..d3dfd72bf86 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java @@ -35,6 +35,7 @@ import org.eclipse.cdt.managedbuilder.core.IResourceInfo; import org.eclipse.cdt.managedbuilder.core.ITool; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.newui.CDTListComparator; +import org.eclipse.cdt.ui.newui.CDTPrefUtil; import org.eclipse.cdt.ui.newui.UIMessages; import org.eclipse.cdt.utils.ui.controls.TabFolderLayout; import org.eclipse.core.resources.IProject; @@ -267,20 +268,18 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf Collections.sort(profilesList, CDTListComparator.getInstance()); visibleProfilesList = new ArrayList(profilesList.size()); realPages = new AbstractDiscoveryPage[profilesList.size()]; + String[] labels = new String[profilesList.size()]; + String[] profiles = new String[profilesList.size()]; Iterator it = profilesList.iterator(); int counter = 0; int pos = 0; String savedId = buildInfo.getSelectedProfileId(); while (it.hasNext()) { String profileId = (String)it.next(); - - System.out.println(profileId); - if (!cbi.isProfileSupported(iContext, profileId)) continue; visibleProfilesList.add(profileId); - String profileName = getProfileName(profileId); - profileComboBox.add(profileName); + labels[counter] = profiles[counter] = getProfileName(profileId); if (profileId.equals(savedId)) pos = counter; buildInfo.setSelectedProfileId(profileId); // needs to create page @@ -290,6 +289,9 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf AbstractDiscoveryPage pg = p.getPage(); if (pg != null) { realPages[counter] = pg; + String s = p.name; + if (s != null && s.length() > 0) + labels[counter] = s; pg.setContainer(wrapper); pg.createControl(profileComp); profileComp.layout(true); @@ -299,11 +301,70 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf } counter ++; } - buildInfo.setSelectedProfileId(savedId); - if (profileComboBox.getItemCount() > 0) - profileComboBox.select(pos); - enableAllControls(); - handleDiscoveryProfileChanged(); + profileComboBox.setItems(normalize(labels, profiles, counter)); + + buildInfo.setSelectedProfileId(savedId); + if (profileComboBox.getItemCount() > 0) + profileComboBox.select(pos); + enableAllControls(); + handleDiscoveryProfileChanged(); + } + + private String[] normalize(String[] labels, String[] ids, int counter) { + int mode = CDTPrefUtil.getInt(CDTPrefUtil.KEY_DISC_NAMES); + String[] tmp = new String[counter]; + // Always show either Name + ID, or ID only + // These cases do not require checking for doubles. + if (mode == CDTPrefUtil.DISC_NAMING_ALWAYS_BOTH || + mode == CDTPrefUtil.DISC_NAMING_ALWAYS_IDS){ + for (int i=0; i tab PropertyPageDefsTab.2=Enable multiple configurations setting PropertyPageDefsTab.3=Save property dialog size and position PropertyPageDefsTab.4=Display tab +PropertyPageDefsTab.5=Discovery profiles naming rule +PropertyPageDefsTab.6=Show disc. page names if they're unique. Else names + profile IDs. +PropertyPageDefsTab.7=Show disc. page names if they're unique. Else show profile IDs. +PropertyPageDefsTab.8=Always show names + profile IDs +PropertyPageDefsTab.9=Always show profile IDs only ProjectConvert.convertersList=Converters List ScannerConfigOptionsDialog.title=Discovery Options