diff --git a/src/org/eclipse/core/commands/ParameterizedCommand.java b/src/org/eclipse/core/commands/ParameterizedCommand.java index fdcc471..986e79c 100644 --- a/src/org/eclipse/core/commands/ParameterizedCommand.java +++ b/src/org/eclipse/core/commands/ParameterizedCommand.java @@ -8,6 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation * Benjamin Muskalla - bug 222861 [Commands] ParameterizedCommand#equals broken + * Mykola Nikishov - bug 293447 Parameter as a part of command's name in the Quick Access *******************************************************************************/ package org.eclipse.core.commands; @@ -543,15 +544,38 @@ public final class ParameterizedCommand implements Comparable { final StringBuffer nameBuffer = new StringBuffer(); nameBuffer.append(command.getName()); if (parameterizations != null) { - nameBuffer.append(" ("); //$NON-NLS-1$ final int parameterizationCount = parameterizations.length; + StringBuffer parametersBuffer = new StringBuffer(); for (int i = 0; i < parameterizationCount; i++) { final Parameterization parameterization = parameterizations[i]; - nameBuffer - .append(parameterization.getParameter().getName()); - nameBuffer.append(": "); //$NON-NLS-1$ + final String parameterName = parameterization + .getParameter().getName(); + final String placeholder = "{".concat(String.valueOf(i)).concat("}"); //$NON-NLS-1$ //$NON-NLS-2$ + int parameterPosition = nameBuffer.toString().indexOf( + placeholder); + if (parameterPosition != -1) { + while (parameterPosition != -1) { + // add parameter to command's name + try { + nameBuffer.replace(parameterPosition, + parameterPosition + + placeholder.length(), + parameterization.getValueName()); + } catch (ParameterValuesException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + parameterPosition = nameBuffer.toString().indexOf( + placeholder); + } + // skip this parameter + continue; + } + parametersBuffer.append(parameterName); + parametersBuffer.append(": "); //$NON-NLS-1$ try { - nameBuffer.append(parameterization.getValueName()); + parametersBuffer + .append(parameterization.getValueName()); } catch (final ParameterValuesException e) { /* * Just let it go for now. If someone complains we can @@ -561,10 +585,15 @@ public final class ParameterizedCommand implements Comparable { // If there is another item, append a separator. if (i + 1 < parameterizationCount) { - nameBuffer.append(", "); //$NON-NLS-1$ + parametersBuffer.append(", "); //$NON-NLS-1$ } } - nameBuffer.append(')'); + // if there are any parameters, append them to the name + if (parametersBuffer.length() > 0) { + nameBuffer.append(" ("); //$NON-NLS-1$ + nameBuffer.append(parametersBuffer.toString()); + nameBuffer.append(")"); //$NON-NLS-1$ + } } name = nameBuffer.toString(); }