protected final ColoredString getColoredLabelWithCounts(Object element, ColoredString coloredName) { String name= coloredName.getString(); String decorated= getLabelWithCounts(element, name); if (decorated.length() > name.length()) { ColoredJavaElementLabels.decorateColoredString(coloredName, decorated, ColoredJavaElementLabels.COUNTER_STYLE); } return coloredName; }
/** * Appends the label for a package fragment root to a {@link ColoredString}. Considers the ROOT_* flags. * @param root The element to render. * @param flags The rendering flags. Flags with names starting with ROOT_' are considered. * @param result The buffer to append the resulting label to. */ public static void getPackageFragmentRootLabel(IPackageFragmentRoot root, long flags, ColoredString result) { if (root.isArchive()) getArchiveLabel(root, flags, result); else getFolderLabel(root, flags, result); }
if (root != null && getFlag(flags, JavaElementLabels.PREPEND_ROOT_PATH)) { getPackageFragmentRootLabel(root, JavaElementLabels.ROOT_QUALIFIED, result); result.append(JavaElementLabels.CONCAT_STRING); getMethodLabel((IMethod) element, flags, result); break; case IJavaElement.FIELD: getFieldLabel((IField) element, flags, result); break; case IJavaElement.LOCAL_VARIABLE: getLocalVariableLabel((ILocalVariable) element, flags, result); break; case IJavaElement.INITIALIZER: getInitializerLabel((IInitializer) element, flags, result); break; case IJavaElement.TYPE: getTypeLabel((IType) element, flags, result); break; case IJavaElement.CLASS_FILE: getClassFileLabel((IClassFile) element, flags, result); break; case IJavaElement.COMPILATION_UNIT: getCompilationUnitLabel((ICompilationUnit) element, flags, result); break; case IJavaElement.PACKAGE_FRAGMENT: getPackageFragmentLabel((IPackageFragment) element, flags, result); break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: getPackageFragmentRootLabel((IPackageFragmentRoot) element, flags, result);
private static void getArchiveLabel(IPackageFragmentRoot root, long flags, ColoredString result) { // Handle variables different if (getFlag(flags, JavaElementLabels.ROOT_VARIABLE) && getVariableLabel(root, flags, result)) return; boolean external= root.isExternal(); if (external) getExternalArchiveLabel(root, flags, result); else getInternalArchiveLabel(root, flags, result); }
if (getFlag(flags, JavaElementLabels.T_FULLY_QUALIFIED)) { IPackageFragment pack= type.getPackageFragment(); if (!pack.isDefaultPackage()) { getPackageFragmentLabel(pack, (flags & QUALIFIER_FLAGS), result); result.append('.'); if (getFlag(flags, JavaElementLabels.T_FULLY_QUALIFIED | JavaElementLabels.T_CONTAINER_QUALIFIED)) { IType declaringType= type.getDeclaringType(); if (declaringType != null) { getTypeLabel(declaringType, JavaElementLabels.T_CONTAINER_QUALIFIED | (flags & QUALIFIER_FLAGS), result); result.append('.'); getElementLabel(type.getParent(), 0, result); result.append('.'); if (getFlag(flags, JavaElementLabels.T_TYPE_PARAMETERS)) { if (getFlag(flags, JavaElementLabels.USE_RESOLVED) && type.isResolved()) { BindingKey key= new BindingKey(type.getKey()); if (key.isParameterizedType()) { String[] typeArguments= key.getTypeArguments(); getTypeArgumentSignaturesLabel(typeArguments, flags, result); } else { String[] typeParameters= Signature.getTypeParameters(key.toSignature()); getTypeParameterSignaturesLabel(typeParameters, flags, result); getTypeParametersLabel(type.getTypeParameters(), flags, result); } catch (JavaModelException e) { if (getFlag(flags, JavaElementLabels.T_CATEGORY) && type.exists()) {
BindingKey resolvedKey= getFlag(flags, JavaElementLabels.USE_RESOLVED) && method.isResolved() ? new BindingKey(method.getKey()) : null; String resolvedSig= (resolvedKey != null) ? resolvedKey.toSignature() : null; if (getFlag(flags, JavaElementLabels.M_PRE_TYPE_PARAMETERS)) { if (resolvedKey != null) { if (resolvedKey.isParameterizedMethod()) { String[] typeArgRefs= resolvedKey.getTypeArguments(); if (typeArgRefs.length > 0) { getTypeArgumentSignaturesLabel(typeArgRefs, flags, result); result.append(' '); String[] typeParameterSigs= Signature.getTypeParameters(resolvedSig); if (typeParameterSigs.length > 0) { getTypeParameterSignaturesLabel(typeParameterSigs, flags, result); result.append(' '); ITypeParameter[] typeParameters= method.getTypeParameters(); if (typeParameters.length > 0) { getTypeParametersLabel(typeParameters, flags, result); result.append(' '); if (getFlag(flags, JavaElementLabels.M_PRE_RETURNTYPE) && method.exists() && !method.isConstructor()) { String returnTypeSig= resolvedSig != null ? Signature.getReturnType(resolvedSig) : method.getReturnType(); getTypeSignatureLabel(returnTypeSig, flags, result); result.append(' '); if (getFlag(flags, JavaElementLabels.M_FULLY_QUALIFIED)) { getTypeLabel(method.getDeclaringType(), JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result); result.append('.');
if (getFlag(flags, JavaElementLabels.F_PRE_TYPE_SIGNATURE) && field.exists() && !Flags.isEnum(field.getFlags())) { if (getFlag(flags, JavaElementLabels.USE_RESOLVED) && field.isResolved()) { getTypeSignatureLabel(new BindingKey(field.getKey()).toSignature(), flags, result); } else { getTypeSignatureLabel(field.getTypeSignature(), flags, result); if (getFlag(flags, JavaElementLabels.F_FULLY_QUALIFIED)) { getTypeLabel(field.getDeclaringType(), JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result); result.append('.'); if (getFlag(flags, JavaElementLabels.F_APP_TYPE_SIGNATURE) && field.exists() && !Flags.isEnum(field.getFlags())) { int offset= result.length(); result.append(JavaElementLabels.DECL_STRING); if (getFlag(flags, JavaElementLabels.USE_RESOLVED) && field.isResolved()) { getTypeSignatureLabel(new BindingKey(field.getKey()).toSignature(), flags, result); } else { getTypeSignatureLabel(field.getTypeSignature(), flags, result); if (getFlag(flags, COLORIZE)) { result.colorize(offset, result.length() - offset, APPENDED_TYPE_STYLE); if (getFlag(flags, JavaElementLabels.F_CATEGORY) && field.exists()) getCategoryLabel(field, result); if (getFlag(flags, JavaElementLabels.F_POST_QUALIFIED)) { int offset= result.length(); result.append(JavaElementLabels.CONCAT_STRING); getTypeLabel(field.getDeclaringType(), JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result); if (getFlag(flags, COLORIZE)) {
if (getFlag(flags, JavaElementLabels.F_PRE_TYPE_SIGNATURE)) { getTypeSignatureLabel(localVariable.getTypeSignature(), flags, result); result.append(' '); if (getFlag(flags, JavaElementLabels.F_FULLY_QUALIFIED)) { getElementLabel(localVariable.getParent(), JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_FULLY_QUALIFIED | JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result); result.append('.'); if (getFlag(flags, JavaElementLabels.F_APP_TYPE_SIGNATURE)) { int offset= result.length(); result.append(JavaElementLabels.DECL_STRING); getTypeSignatureLabel(localVariable.getTypeSignature(), flags, result); if (getFlag(flags, COLORIZE)) { result.colorize(offset, result.length() - offset, APPENDED_TYPE_STYLE); if (getFlag(flags, JavaElementLabels.F_POST_QUALIFIED)) { result.append(JavaElementLabels.CONCAT_STRING); getElementLabel(localVariable.getParent(), JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_FULLY_QUALIFIED | JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
public ColoredString getRichTextLabel(Object element) { ColoredString string= ColoredJavaElementLabels.getTextLabel(element, evaluateTextFlags(element) | ColoredJavaElementLabels.COLORIZE); if (string.length() == 0 && (element instanceof IStorage)) { string= new ColoredString(fStorageLabelProvider.getText(element)); } String decorated= decorateText(string.getString(), element); if (decorated != null) { return ColoredJavaElementLabels.decorateColoredString(string, decorated, ColoredJavaElementLabels.DECORATIONS_STYLE); } return string; }
if (getFlag(flags, JavaElementLabels.D_QUALIFIED)) { IJavaElement openable= (IJavaElement) declaration.getOpenable(); if (openable != null) { result.append(getElementLabel(openable, JavaElementLabels.CF_QUALIFIED | JavaElementLabels.CU_QUALIFIED | (flags & QUALIFIER_FLAGS))); result.append('/'); if (getFlag(flags, JavaElementLabels.D_POST_QUALIFIED)) { int offset= result.length(); IJavaElement openable= (IJavaElement) declaration.getOpenable(); if (openable != null) { result.append(JavaElementLabels.CONCAT_STRING); result.append(getElementLabel(openable, JavaElementLabels.CF_QUALIFIED | JavaElementLabels.CU_QUALIFIED | (flags & QUALIFIER_FLAGS))); if (getFlag(flags, COLORIZE)) { result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
/** * Returns the label of the given object. The object must be of type {@link IJavaElement} or adapt to {@link IWorkbenchAdapter}. The empty string is returned * if the element type is not known. * @param obj Object to get the label from. * @param flags The rendering flags * @return Returns the label or the empty string if the object type is not supported. */ public static ColoredString getTextLabel(Object obj, long flags) { if (obj instanceof IJavaElement) { return getElementLabel((IJavaElement) obj, flags); } else if (obj instanceof IResource) { return new ColoredString(((IResource) obj).getName()); } else if (obj instanceof ClassPathContainer) { ClassPathContainer container= (ClassPathContainer) obj; return getContainerEntryLabel(container.getClasspathEntry().getPath(), container.getJavaProject()); } return new ColoredString(JavaElementLabels.getTextLabel(obj, flags)); }
/** * Returns the label for a Java element with the flags as defined by this class. * @param element The element to render. * @param flags The rendering flags. * @return the label of the Java element */ public static ColoredString getElementLabel(IJavaElement element, long flags) { ColoredString result= new ColoredString(); getElementLabel(element, flags, result); return result; }
public ColoredString getRichTextLabel(Object element) { if (element instanceof MethodWrapper && ((MethodWrapper) element).getMember() != null) { MethodWrapper wrapper= (MethodWrapper) element; String decorated= getElementLabel(wrapper); ColoredString text= super.getRichTextLabel(wrapper.getMember()); return ColoredJavaElementLabels.decorateColoredString(text, decorated, ColoredJavaElementLabels.COUNTER_STYLE); } return new ColoredString(getSpecialLabel(element)); }
private ColoredString getColoredLabelForView(Item item) { ColoredString oldLabel= (ColoredString) item.getData(COLORED_LABEL_KEY); String itemText= item.getText(); if (oldLabel != null && oldLabel.getString().equals(itemText)) { // avoid accesses to the label provider if possible return oldLabel; } ColoredString newLabel= null; IBaseLabelProvider labelProvider= fViewer.getLabelProvider(); if (labelProvider instanceof IRichLabelProvider) { newLabel= ((IRichLabelProvider) labelProvider).getRichTextLabel(item.getData()); } if (newLabel == null) { newLabel= new ColoredString(itemText); // fallback. Should never happen. } else if (!newLabel.getString().equals(itemText)) { // the decorator manager has already queued an new update newLabel= ColoredJavaElementLabels.decorateColoredString(newLabel, itemText, ColoredJavaElementLabels.DECORATIONS_STYLE); } item.setData(COLORED_LABEL_KEY, newLabel); // cache the result return newLabel; }
public ColoredString getRichTextLabel(Object element) { ILabelProvider labelProvider= getLabelProvider(); if (labelProvider instanceof IRichLabelProvider) { // get a rich label from the label decorator IRichLabelProvider richLabelProvider= (IRichLabelProvider) labelProvider; ColoredString richLabel= richLabelProvider.getRichTextLabel(element); if (richLabel != null) { String decorated= null; ILabelDecorator labelDecorator= getLabelDecorator(); if (labelDecorator != null) { if (labelDecorator instanceof LabelDecorator) { decorated= ((LabelDecorator) labelDecorator).decorateText(richLabel.getString(), element, getDecorationContext()); } else { decorated= labelDecorator.decorateText(richLabel.getString(), element); } } if (decorated != null) { return ColoredJavaElementLabels.decorateColoredString(richLabel, decorated, ColoredJavaElementLabels.DECORATIONS_STYLE); } return richLabel; } } return null; }