Mercurial > projects > dwt-addons
diff dwtx/jface/text/formatter/package.html @ 129:eb30df5ca28b
Added JFace Text sources
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 23 Aug 2008 19:10:48 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dwtx/jface/text/formatter/package.html Sat Aug 23 19:10:48 2008 +0200 @@ -0,0 +1,89 @@ +<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"> +<html> +<head> + <meta content="text/html; charset=iso-8859-1" + http-equiv="Content-Type"> + <meta content="IBM" name="Author"> + <title>Package-level Javadoc</title> +</head> +<body> +Provides a content formatter add-on for an <tt>ITextViewer</tt>. +A content formatter changes the formatting of a document region while +preserving and correctly updating the positions of the document. +<h2>Package Specification</h2> +<tt>IContentFormatter</tt> defines the concept of a text formatter. It +collaborates with content type specific formatting stratgies (<tt>IFormattingStrategy</tt>) +which for a given document region format the subregion with the +matching +content type. The package contains a default implementation of <tt>IContentFormatter</tt> +(<tt>ContentFormatter</tt>).<br> +Additionally, an implementation of <tt>IContentFormatterExtension</tt> +is provided +for text edit based formatting strategies. This implementation only +accepts formatting strategies +implementing the extension interface <tt>IFormattingStrategyExtension</tt>. +These formatting strategies are required to handle the position +updating of the document. To facilitate the work with these text edit +based formatting strategies, a default implementation called <tt>ContextBasedFormattingStrategy</tt> +is provided. Formatting strategies inheriting from this class are text +edit based and behave context dependent. Depending on the formatting +context that is passed +to the content formatter, different preferences and modes can be used +to format different parts of a document. +<p>To set up a proper working text edit based content formatter, the +following steps are needed: +</p> +<ul> + <li>Create an instance of <tt>IFormattingContext</tt>. The default +implementation <tt>FormattingContext</tt> already +provides support for the conversion of preferences from a preference +store to a map and vice versa. The method <tt>getPreferenceKeys</tt> +usually has to be overridden to return the appropriate keys of the +preferences used during the formatting process. Then register a map of +preferences +with the formatting context by calling <tt>setProperty(String, Object)</tt> +with the property identifier <tt>FormattingContextProperties.CONTEXT_PREFERENCES</tt>.</li> + <li>Create an instance of the text edit based content formatter class + <tt>MultiPassContentFormatter</tt>. The document partitioning and +its associated +default content type have to be passed to the constructor. This +information is needed since the content formatter is able to format +documents +according to arbitrary partitionings and default content types.</li> + <li>Register the formatting strategies for the content types that +have to be formatted. If a formatting strategy is +registered as master strategy, it is automatically associated with the +default content type of the specified partitioning. +If the formatting strategy is registered as slave strategy, it is +associated with the indicated content type during the registration. +Note that the master strategy can also be registered as a slave +strategy for a content type other than the default content type.</li> + <li>Specify the proper formatting mode (see +FormattingContextProperties): + <ul> + <li>For whole document formatting set the property <tt>CONTEXT_DOCUMENT</tt> +of the created formatting context to <tt>true</tt>. This is +equivalent to setting <code>CONTEXT_REGION</code> with a region +spanning the whole document.</li> + <li>For multiple region formatting set the property <code>CONTEXT_REGION</code> +of the formatting context. Note that the content formatter +automatically aligns the offset of a region to a line start for the +master formatting strategy, it also completes eventual partitions +covered only partially by the region for the slave formatting +strategies.</li> + <li>For explicit formatting of a partition with the formatting +strategy registered for a certain content type use the +property <tt>CONTEXT_PARTITION</tt>. Note that the region denoted by +this property must correspond to a partition relative to the specified +partitioning in the document to be formatted. The content type of this +property overrides the content type of the partition +in the document.</li> + </ul> + </li> + <li>Call the method <tt>MultiPassContentFormatter#format(IDocument, +IFormattingContext)</tt> with the created formatting context +and the document to be formatted.</li> +</ul> +<p></p> +</body> +</html>