### Eclipse Workspace Patch 1.0 #P org.eclipse.equinox.p2.director Index: src/org/eclipse/equinox/internal/p2/director/Explanation.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Explanation.java,v retrieving revision 1.6 diff -u -r1.6 Explanation.java --- src/org/eclipse/equinox/internal/p2/director/Explanation.java 15 Apr 2009 20:46:57 -0000 1.6 +++ src/org/eclipse/equinox/internal/p2/director/Explanation.java 6 May 2009 02:38:48 -0000 @@ -40,7 +40,7 @@ public IStatus toStatus() { MultiStatus result = new MultiStatus(DirectorActivator.PI_DIRECTOR, 1, Messages.Explanation_unsatisfied, null); - final String fromString = "Patched " + patch.toString() + ' ' + iu;//$NON-NLS-1$ + final String fromString = "Patched " + patch.toString() + ' ' + getUserReadableName(iu);//$NON-NLS-1$ result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_from, fromString))); result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_to, req))); return result; @@ -66,7 +66,7 @@ public IStatus toStatus() { MultiStatus result = new MultiStatus(DirectorActivator.PI_DIRECTOR, 1, Messages.Explanation_unsatisfied, null); - result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_from, iu))); + result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_from, getUserReadableName(iu)))); result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_to, req))); return result; } @@ -90,6 +90,10 @@ public String toString() { return NLS.bind(Messages.Explanation_alreadyInstalled, iu); } + + public IStatus toStatus() { + return new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_alreadyInstalled, getUserReadableName(iu))); + } } public static class IUToInstall extends Explanation { @@ -106,6 +110,10 @@ public String toString() { return NLS.bind(Messages.Explanation_toInstall, iu); } + + public IStatus toStatus() { + return new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_toInstall, getUserReadableName(iu))); + } } public static class MissingIU extends Explanation { @@ -133,6 +141,13 @@ return NLS.bind(Messages.Explanation_missingRequiredFilter, new Object[] {filter, iu, req}); } + public IStatus toStatus() { + String filter = req.getFilter(); + if (filter == null) { + return new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_missingRequired, getUserReadableName(iu), req)); + } + return new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_missingRequiredFilter, new Object[] {filter, getUserReadableName(iu), req})); + } } public static class Singleton extends Explanation { @@ -153,7 +168,7 @@ public IStatus toStatus() { MultiStatus result = new MultiStatus(DirectorActivator.PI_DIRECTOR, 1, NLS.bind(Messages.Explanation_singleton, ""), null); //$NON-NLS-1$ for (int i = 0; i < ius.length; i++) - result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, ius[i].toString())); + result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, getUserReadableName(ius[i]))); return result; } @@ -202,4 +217,13 @@ public IStatus toStatus() { return new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, toString()); } + + protected String getUserReadableName(IInstallableUnit iu) { + if (iu == null) + return ""; //$NON-NLS-1$ + String result = iu.getProperty(IInstallableUnit.PROP_NAME); + if (result == null) + return iu.toString(); + return result + ' ' + iu.getVersion() + " (" + iu.toString() + ')'; //$NON-NLS-1$ + } }