Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Eclipse JavaServer Faces Tooling Development Guide
Previous Page Home Next Page

Using Context Resolvers


Overview

Context resolvers are an abstraction used by the JSF EL framework to decouple sources of context information from the way that information is created.  Common examples of such contexts are:
  • a dynamic web project in an Eclipse workspace
  • a JSP file in a dynamic web project
  • a particular absolute offset into an IDocument
Context resolvers allow us to derive interesting information from these contexts such as:
  • what is the current IProject?
  • where are we in an IRegion or DOM tree?
  • what JSF EL symbols are available at the current IDocument position?

IStructuredDocumentContext

A particularly useful context is one in an IStructuredDocument.  An IStructuredDocument represents an SSE document that can be manipulated in a number of different ways including as a regular IDocument or as a DOM.  The IStructuredDocumentContext points to a specific absolute offset into such a document.  The context can then be passed to various resolvers to determine information about this position in the document.

Context Resolvers

The following is a list of context resolvers that are available as provisional APIs:

Resolver Type
Purpose
ITaglibContextResolver Resolves taglib information for the current context such as retrieving the tag library information for the current tag.
IWorkspaceContextResolver Resolves workspace information for the current document context such as IFile and IProject.
IDOMContextResolver Resolves DOM information for the current context such as current element and attribute.
IMetadataContextResolver Resolves meta-data framework information for a given context.  For example, if the current context resolves to an XML attribute, retrieves meta-data associate with that attribute/element/uri.
ISymbolContextResolver Determines what symbols are available or valid within the current context.  For example, if context is an EL expression, what bean names are available?

Factories

Factories exist to create both contexts and context resolvers.  These are:

Factory Name
What it does
org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory Creates new IStructuredDocumentContext objects based on a document and offset.
org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory Creates a new instances of context resolvers for an IStructuredDocumentContext.

Adding Factory Delegates

The existing factories can be extended using factory delegates.  A delegate for IStructuredDocumentContextFactory allows you to extend the existing factory to create IStructuredDocumentContext's for document contexts other than an IStructuredDocumentContext and offset.  Similarly, adding factory delegates to IStructuredDocumentContextResolverFactory allows you to create context resolvers for structured documents other than those already supported.

Factory delegates are added programmatically be calling addFactoryDelegate on the appropriate factory.  See the JavaDoc for IDelegatingFactory for more details.


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire