diff options
author | Thanh Liem PHAN | 2016-12-06 14:24:14 +0000 |
---|---|---|
committer | vincent lorenzo | 2016-12-09 20:01:51 +0000 |
commit | 541e9352407e8de79a46b491c726c0b7c658779f (patch) | |
tree | bc593a2dc7f43676b12bdf47364d511d9ad60f3f /plugins/customization | |
parent | 42d829855ddfe45d7550d8b739c8a5ac2f1cc289 (diff) | |
download | org.eclipse.papyrus-541e9352407e8de79a46b491c726c0b7c658779f.tar.gz org.eclipse.papyrus-541e9352407e8de79a46b491c726c0b7c658779f.tar.xz org.eclipse.papyrus-541e9352407e8de79a46b491c726c0b7c658779f.zip |
Bug 502824: [Table][Configuration Wizard] bad serialization for id of
Axis Manager
https://bugs.eclipse.org/bugs/show_bug.cgi?id=502824
- Correct the map between axis manager ids and their names
- Do not add an axis manager id if it has already been in the list of
required axis manager
Change-Id: I1edf66607c586ee7ae26d93ab430f19932f19839
Signed-off-by: Thanh Liem PHAN <thanhliem.phan@all4tec.net>
Diffstat (limited to 'plugins/customization')
4 files changed, 49 insertions, 34 deletions
diff --git a/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/AbstractAxisConfigurationWizardPage.java b/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/AbstractAxisConfigurationWizardPage.java index 2c8c349bca2..d51d78f31ed 100644 --- a/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/AbstractAxisConfigurationWizardPage.java +++ b/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/AbstractAxisConfigurationWizardPage.java @@ -309,7 +309,9 @@ public abstract class AbstractAxisConfigurationWizardPage extends AbstractTableC // Define the titles and bounds of each columns final int[] bounds = { 200, 125, 125, 125, 125, 125, 125 }; - final String[] titles = { Messages.AbstractAxisConfigurationWizardPage_labelProviderConfigurationColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayIconColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayLabelColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayNameColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayTypeColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayMultiplicityColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayIsDerivedColumnLabel }; + final String[] titles = { Messages.AbstractAxisConfigurationWizardPage_labelProviderConfigurationColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayIconColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayLabelColumnLabel, + Messages.AbstractAxisConfigurationWizardPage_displayNameColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayTypeColumnLabel, Messages.AbstractAxisConfigurationWizardPage_displayMultiplicityColumnLabel, + Messages.AbstractAxisConfigurationWizardPage_displayIsDerivedColumnLabel }; // Create the first column for the axis manager id final TableViewerColumn labelProviderConfigurationColumn = createTableViewerColumn(tableViewer, titles[0], bounds[0]); @@ -698,11 +700,13 @@ public abstract class AbstractAxisConfigurationWizardPage extends AbstractTableC /** * Create the list of axis manager identifiers (managing the simple axis manager name and the others with the full identifier). * - * @param knownAxis + * @param requiredProposedAxisManagers + * The required axis managers. + * @param knownAxisCollection * The axis managers registered in the plugins extension. * @return The list of axis manager identifiers. */ - protected List<String> createAxisManagerIdItems(final List<String> requiredProposedAxisManagers, final Collection<String> knownAxis) { + protected List<String> createAxisManagerIdItems(final List<String> requiredProposedAxisManagers, final Collection<String> knownAxisCollection) { final List<String> input = new ArrayList<String>(); // Add the simple axis manager identifier @@ -711,9 +715,26 @@ public abstract class AbstractAxisConfigurationWizardPage extends AbstractTableC } // Add the axis manager identifiers from the registered axis managers - for (final String knowAxis : knownAxis) { - if (!input.contains(knowAxis)) { - input.add(knowAxis); + for (final String knownAxis : knownAxisCollection) { + + // The known axis will be added only if + // - the input list does not contain the known axis + // - and there is no added axis which contains the known axis + // For example if "EMF Feature (org.eclipse.papyrus.infra.emf.nattable.feature.axis.manager)" is already in the input list, + // "org.eclipse.papyrus.infra.emf.nattable.feature.axis.manager" will not be added + if (!input.contains(knownAxis)) { + boolean isKnownAxisAdded = false; + + for (final String addedAxis : input) { + if (addedAxis.contains(knownAxis)) { + isKnownAxisAdded = true; + break; + } + } + + if (!isKnownAxisAdded) { + input.add(knownAxis); + } } } diff --git a/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/ColumnConfigurationWizardPage.java b/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/ColumnConfigurationWizardPage.java index d4116b98556..cebd62382f5 100644 --- a/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/ColumnConfigurationWizardPage.java +++ b/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/ColumnConfigurationWizardPage.java @@ -127,14 +127,11 @@ public class ColumnConfigurationWizardPage extends AbstractAxisConfigurationWiza final StringBuilder value = new StringBuilder(); if (element instanceof AxisManagerRepresentation) { final String axisManagerId = ((AxisManagerRepresentation) element).getAxisManagerId(); - boolean existSimpleName = NameSimplifier.axisManagerNames.containsKey(axisManagerId); - if(existSimpleName){ + boolean axisManagerFound = NameSimplifier.axisManagerNames.containsKey(axisManagerId); + if (axisManagerFound) { value.append(NameSimplifier.axisManagerNames.get(axisManagerId)); - value.append(" ("); //$NON-NLS-1$ - } - value.append(axisManagerId); - if(existSimpleName){ - value.append(")"); //$NON-NLS-1$ + } else { + value.append(null != axisManagerId ? axisManagerId : ""); //$NON-NLS-1$ } } return value.toString(); @@ -150,7 +147,7 @@ public class ColumnConfigurationWizardPage extends AbstractAxisConfigurationWiza // set the new value if (NameSimplifier.axisManagerNames.containsValue(value)) { for (final Entry<String, String> entry : NameSimplifier.axisManagerNames.entrySet()) { - if (((String)value).contains(entry.getValue()) && ((String)value).contains(entry.getKey())) { + if (((String) value).contains(entry.getValue()) && ((String) value).contains(entry.getKey())) { ((AxisManagerRepresentation) element).setAxisManagerId(entry.getKey()); } } diff --git a/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/RowConfigurationWizardPage.java b/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/RowConfigurationWizardPage.java index 9828c661c4e..feac88e3c95 100644 --- a/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/RowConfigurationWizardPage.java +++ b/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/pages/RowConfigurationWizardPage.java @@ -489,14 +489,11 @@ public class RowConfigurationWizardPage extends AbstractAxisConfigurationWizardP final StringBuilder value = new StringBuilder(); if (element instanceof AxisManagerRepresentation) { final String axisManagerId = ((AxisManagerRepresentation) element).getAxisManagerId(); - boolean existSimpleName = NameSimplifier.axisManagerNames.containsKey(axisManagerId); - if(existSimpleName){ + boolean axisManagerFound = NameSimplifier.axisManagerNames.containsKey(axisManagerId); + if (axisManagerFound) { value.append(NameSimplifier.axisManagerNames.get(axisManagerId)); - value.append(" ("); //$NON-NLS-1$ - } - value.append(null != axisManagerId ? axisManagerId : ""); //$NON-NLS-1$ - if(existSimpleName){ - value.append(")"); //$NON-NLS-1$ + } else { + value.append(null != axisManagerId ? axisManagerId : ""); //$NON-NLS-1$ } } return value.toString(); @@ -512,7 +509,7 @@ public class RowConfigurationWizardPage extends AbstractAxisConfigurationWizardP // set the new value if (NameSimplifier.axisManagerNames.containsValue(value)) { for (final Entry<String, String> entry : NameSimplifier.axisManagerNames.entrySet()) { - if (((String)value).contains(entry.getValue()) && ((String)value).contains(entry.getKey())) { + if (((String) value).contains(entry.getValue()) && ((String) value).contains(entry.getKey())) { ((AxisManagerRepresentation) element).setAxisManagerId(entry.getKey()); } } @@ -551,10 +548,10 @@ public class RowConfigurationWizardPage extends AbstractAxisConfigurationWizardP @Override public String getText(final Object element) { String result = ""; //$NON-NLS-1$ - if(element instanceof AxisManagerRepresentation){ - if(NameSimplifier.labelProviderContextNames.containsKey(((AxisManagerRepresentation) element).getLabelProviderContext())){ + if (element instanceof AxisManagerRepresentation) { + if (NameSimplifier.labelProviderContextNames.containsKey(((AxisManagerRepresentation) element).getLabelProviderContext())) { result = NameSimplifier.labelProviderContextNames.get(((AxisManagerRepresentation) element).getLabelProviderContext()); - }else{ + } else { result = ((AxisManagerRepresentation) element).getLabelProviderContext(); } } diff --git a/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/utils/NameSimplifier.java b/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/utils/NameSimplifier.java index 27f2590b45c..9ea3e49424e 100644 --- a/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/utils/NameSimplifier.java +++ b/plugins/customization/org.eclipse.papyrus.customization.nattableconfiguration/src/org/eclipse/papyrus/customization/nattableconfiguration/utils/NameSimplifier.java @@ -26,7 +26,7 @@ import org.eclipse.papyrus.infra.nattable.model.nattable.nattablelabelprovider.i public class NameSimplifier { /** - * To simplify the user choice, some axis managers identifier must be converted to simple name. + * Map the axis manager id (as key) to its name (as value). */ public static final Map<String, String> axisManagerNames = new HashMap<String, String>(); @@ -55,14 +55,14 @@ public class NameSimplifier { * Initialize the previous map. */ static { - axisManagerNames.put("org.eclipse.papyrus.infra.emf.nattable.feature.axis.manager", "EMF Feature"); //$NON-NLS-1$ //$NON-NLS-2$ - axisManagerNames.put("org.eclipse.papyrus.infra.emf.nattable.operation.axis.manager", "EMF Operation"); //$NON-NLS-1$ //$NON-NLS-2$ - axisManagerNames.put("org.eclipse.papyrus.uml.nattable.element.axis.manager", "UML Element"); //$NON-NLS-1$ //$NON-NLS-2$ - axisManagerNames.put("org.eclipse.papyrus.uml.nattable.feature.axis.manager", "UML Feature"); //$NON-NLS-1$ //$NON-NLS-2$ - axisManagerNames.put("org.eclipse.papyrus.uml.nattable.operation.axis.manager", "UML Operation"); //$NON-NLS-1$ //$NON-NLS-2$ - axisManagerNames.put("org.eclipse.papyrus.infra.uml.nattable.class.tree.axis.manager", "UML Tree Axis"); //$NON-NLS-1$ //$NON-NLS-2$ - axisManagerNames.put("org.eclipse.papyrus.sysml.nattable.requirement.axis.manager", "SysML Requirement"); //$NON-NLS-1$ //$NON-NLS-2$ - axisManagerNames.put("org.eclipse.papyrus.sysml.nattable.allocate.axis.manager", "SysML Allocation"); //$NON-NLS-1$ //$NON-NLS-2$ + axisManagerNames.put("org.eclipse.papyrus.infra.emf.nattable.feature.axis.manager", "EMF Feature (org.eclipse.papyrus.infra.emf.nattable.feature.axis.manager)"); //$NON-NLS-1$ //$NON-NLS-2$ + axisManagerNames.put("org.eclipse.papyrus.infra.emf.nattable.operation.axis.manager", "EMF Operation (org.eclipse.papyrus.infra.emf.nattable.operation.axis.manager)"); //$NON-NLS-1$ //$NON-NLS-2$ + axisManagerNames.put("org.eclipse.papyrus.uml.nattable.element.axis.manager", "UML Element (org.eclipse.papyrus.uml.nattable.element.axis.manager)"); //$NON-NLS-1$ //$NON-NLS-2$ + axisManagerNames.put("org.eclipse.papyrus.uml.nattable.feature.axis.manager", "UML Feature (org.eclipse.papyrus.uml.nattable.feature.axis.manager)"); //$NON-NLS-1$ //$NON-NLS-2$ + axisManagerNames.put("org.eclipse.papyrus.uml.nattable.operation.axis.manager", "UML Operation (org.eclipse.papyrus.uml.nattable.operation.axis.manager)"); //$NON-NLS-1$ //$NON-NLS-2$ + axisManagerNames.put("org.eclipse.papyrus.infra.uml.nattable.class.tree.axis.manager", "UML Tree Axis (org.eclipse.papyrus.infra.uml.nattable.class.tree.axis.manager)"); //$NON-NLS-1$ //$NON-NLS-2$ + axisManagerNames.put("org.eclipse.papyrus.sysml.nattable.requirement.axis.manager", "SysML Requirement (org.eclipse.papyrus.sysml.nattable.requirement.axis.manager)"); //$NON-NLS-1$ //$NON-NLS-2$ + axisManagerNames.put("org.eclipse.papyrus.sysml.nattable.allocate.axis.manager", "SysML Allocation (org.eclipse.papyrus.sysml.nattable.allocate.axis.manager)"); //$NON-NLS-1$ //$NON-NLS-2$ labelProviderConfigurationByAxisManager.put("org.eclipse.papyrus.infra.emf.nattable.feature.axis.manager", FeatureLabelProviderConfigurationImpl.class.getSimpleName()); //$NON-NLS-1$ labelProviderConfigurationByAxisManager.put("org.eclipse.papyrus.infra.emf.nattable.operation.axis.manager", OperationLabelProviderConfigurationImpl.class.getSimpleName()); //$NON-NLS-1$ |