Bug 27801 Change the way external JARs are presented in Package Explorer
External JARs are currently presented in Package Explorer using their full path. This causes a problem in cases where this path is long (e.g. self- hosting). With the standard view widths, the most important part of the path (library name) is clipped and users have to scroll or move the mouse over to see the tool tip. It would be much better if the name is split into two parts: <library name> - <library location> For example: Instead of d:\eclipse1204\eclipse\plugins\org.eclipse.core.resources_2.1.0\resources.jar use resources.jar - d:\eclipse1204\eclipse\plugins\org.eclipse.core.resources_2.1.0 This way, label will still be clipped, but the library name will be readily visible. This should be a trivial change since it only affects label provider.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementLabels.java
public final static int ALL_DEFAULT= M_PARAMETER_TYPES;
	/**
	 *  Default qualify options (All except Root and Package)
	 */
	public final static int DEFAULT_QUALIFIED= F_FULLY_QUALIFIED | M_FULLY_QUALIFIED | I_FULLY_QUALIFIED | T_FULLY_QUALIFIED | D_QUALIFIED | CF_QUALIFIED | CU_QUALIFIED;
	/**
	 *  Default post qualify options (All except Root and Package)
	 */
	public final static int DEFAULT_POST_QUALIFIED= F_POST_QUALIFIED | M_POST_QUALIFIED | I_POST_QUALIFIED | T_POST_QUALIFIED | D_POST_QUALIFIED | CF_POST_QUALIFIED | CU_POST_QUALIFIED;
	public final static String CONCAT_STRING= JavaUIMessages.getString("JavaElementLabels.concat_string"); 
	public final static String COMMA_STRING= JavaUIMessages.getString("JavaElementLabels.comma_string"); 
	public final static String DECL_STRING= JavaUIMessages.getString("JavaElementLabels.declseparator_string"); 
	/*
	 * Package name compression
	 */
	private static String fgPkgNamePattern= ""; 
	private static String fgPkgNamePrefix;
	private static String fgPkgNamePostfix;
	private static int fgPkgNameChars;
	private static int fgPkgNameLength;
	private JavaElementLabels() {
	}
	private static boolean getFlag(int flags, int flag) {
		return (flags & flag) != 0;
	}
	
	public static String getTextLabel(Object obj, int flags) {
		if (obj instanceof IJavaElement) {
			return getElementLabel((IJavaElement) obj, flags);
		} else if (obj instanceof IAdaptable) {