@Override public Image getImage() { if (this.image != null) { return this.image; } CompletionProposalLabelProvider provider = new CompletionProposalLabelProvider(); CompletionProposal generatedProposal = CompletionProposal.create(completionProposalKind, 0); generatedProposal.setFlags(completionProposalFlags); if (HAS_ADDITIONAL_FLAGS) { generatedProposal.setAdditionalFlags(completionProposalAdditionalFlags); } generatedProposal.setDeclarationSignature(completionPropsoalSignature); generatedProposal.setSignature(completionPropsoalSignature); // uses: kind, flags, signature to create an image. ImageDescriptor descriptor = provider.createImageDescriptor(generatedProposal); return descriptor.createImage(); }