org.apache.batik.util.awt.svg
Class DOMGroupManager

java.lang.Object
  |
  +--org.apache.batik.util.awt.svg.DOMGroupManager
All Implemented Interfaces:
CSSConstants, SVGConstants, SVGSyntax

public class DOMGroupManager
extends java.lang.Object
implements SVGSyntax

This class is used by the Graphics2D SVG Generator to manage a group of Nodes that can later be added to the SVG DOM Tree managed by the DOMTreeManager. There are two rules that control how children nodes are added to the group managed by this class: + Children node are added to the group as long as there is no more than n graphic context overrides needed to describe the children style. A graphic context override happens when style attributes need to be added to a child node to reflect the state of the graphic context at the time the child was added. Note that the opacity is never reflected in a group node and therefore, is not accounted for in the number of overrides. The number of overrides can be configured and defaults to 2. + Children nodes are added to the current group as long as the associated GraphicContext's transform stack is valid. When children nodes can no longer be added, the group is considered complete and the associated DOMTreeManager is notified of the availability of a completed group. Then, a new group is started.
The DOMTreeManager is also notified every thime a new element is added to the current group. This is needed to let the DOMTreeManager handle group managers that would be used concurrently.


Fields inherited from interface org.apache.batik.util.awt.svg.SVGSyntax
ATTR_HREF, CLOSE_PARENTHESIS, COMMA, ID_PREFIX_ALPHA_COMPOSITE_CLEAR, ID_PREFIX_ALPHA_COMPOSITE_DST_IN, ID_PREFIX_ALPHA_COMPOSITE_DST_OUT, ID_PREFIX_ALPHA_COMPOSITE_DST_OVER, ID_PREFIX_ALPHA_COMPOSITE_SRC, ID_PREFIX_ALPHA_COMPOSITE_SRC_IN, ID_PREFIX_ALPHA_COMPOSITE_SRC_OUT, ID_PREFIX_AMBIENT_LIGHT, ID_PREFIX_BUMP_MAP, ID_PREFIX_CLIP_PATH, ID_PREFIX_DEFS, ID_PREFIX_DIFFUSE_ADD, ID_PREFIX_DIFFUSE_LIGHTING_RESULT, ID_PREFIX_FE_COMPLEX_FILTER, ID_PREFIX_FE_COMPONENT_TRANSFER, ID_PREFIX_FE_COMPOSITE, ID_PREFIX_FE_CONVOLVE_MATRIX, ID_PREFIX_FE_DIFFUSE_LIGHTING, ID_PREFIX_FE_FLOOD, ID_PREFIX_FE_GAUSSIAN_BLUR, ID_PREFIX_FE_LIGHTING_FILTER, ID_PREFIX_FE_SPECULAR_LIGHTING, ID_PREFIX_GENERIC_DEFS, ID_PREFIX_LINEAR_GRADIENT, ID_PREFIX_MASK, ID_PREFIX_PATTERN, ID_PREFIX_RADIAL_GRADIENT, ID_PREFIX_SPECULAR_ADD, ID_PREFIX_SPECULAR_LIGHTING_RESULT, OPEN_PARENTHESIS, RGB_PREFIX, RGB_SUFFIX, SIGN_PERCENT, SIGN_POUND, SPACE, URL_PREFIX, URL_SUFFIX
 
Fields inherited from interface org.apache.batik.util.SVGConstants
ATTR_AMPLITUDE, ATTR_AZIMUTH, ATTR_BASE_FREQUENCY, ATTR_BIAS, ATTR_CLIP_PATH, ATTR_CLIP_PATH_UNITS, ATTR_COLOR_INTERPOLATION, ATTR_COLOR_RENDERING, ATTR_CX, ATTR_CY, ATTR_D, ATTR_DIFFUSE_CONSTANT, ATTR_DIVISOR, ATTR_DX, ATTR_DY, ATTR_EDGE_MODE, ATTR_ELEVATION, ATTR_ENABLE_BACKGROUND, ATTR_EXPONENT, ATTR_FILL, ATTR_FILL_OPACITY, ATTR_FILL_RULE, ATTR_FILTER, ATTR_FILTER_RES, ATTR_FILTER_UNITS, ATTR_FLOOD_COLOR, ATTR_FLOOD_OPACITY, ATTR_FONT_FAMILY, ATTR_FONT_SIZE, ATTR_FONT_STYLE, ATTR_FONT_WEIGHT, ATTR_FX, ATTR_FY, ATTR_GRADIENT_TRANSFORM, ATTR_GRADIENT_UNITS, ATTR_HEIGHT, ATTR_ID, ATTR_IMAGE_RENDERING, ATTR_IN, ATTR_IN2, ATTR_INTERCEPT, ATTR_K1, ATTR_K2, ATTR_K3, ATTR_K4, ATTR_KERNEL_MATRIX, ATTR_KERNEL_UNIT_LENGTH_X, ATTR_KERNEL_UNIT_LENGTH_Y, ATTR_LIGHT_COLOR, ATTR_LIMITING_CONE_ANGLE, ATTR_MASK, ATTR_MASK_CONTENT_UNITS, ATTR_MASK_UNITS, ATTR_MEDIA, ATTR_METHOD, ATTR_MODE, ATTR_NUM_OCTAVES, ATTR_OFFSET, ATTR_OPACITY, ATTR_OPERATOR, ATTR_ORDER, ATTR_ORDER_X, ATTR_ORDER_Y, ATTR_PATTERN_CONTENT_UNITS, ATTR_PATTERN_TRANSFORM, ATTR_PATTERN_UNITS, ATTR_POINTS, ATTR_POINTS_AT_X, ATTR_POINTS_AT_Y, ATTR_POINTS_AT_Z, ATTR_PRESERVE_ALPHA, ATTR_PRESERVE_ASPECT_RATIO, ATTR_PRIMITIVE_UNITS, ATTR_R, ATTR_RADIUS, ATTR_RESULT, ATTR_RESULT_SCALE, ATTR_RX, ATTR_RY, ATTR_SCALE, ATTR_SEED, ATTR_SHAPE_RENDERING, ATTR_SLOPE, ATTR_SPACE, ATTR_SPACING, ATTR_SPECULAR_CONSTANT, ATTR_SPECULAR_EXPONENT, ATTR_SPREAD_METHOD, ATTR_START_OFFSET, ATTR_STD_DEVIATION, ATTR_STITCH_TILES, ATTR_STOP_COLOR, ATTR_STOP_OPACITY, ATTR_STROKE, ATTR_STROKE_DASHARRAY, ATTR_STROKE_DASHOFFSET, ATTR_STROKE_LINECAP, ATTR_STROKE_LINEJOIN, ATTR_STROKE_MITERLIMIT, ATTR_STROKE_OPACITY, ATTR_STROKE_WIDTH, ATTR_STYLE, ATTR_SURFACE_SCALE, ATTR_SYSTEM_LANGUAGE, ATTR_TABLE, ATTR_TABLE_VALUES, ATTR_TARGET, ATTR_TARGET_X, ATTR_TARGET_Y, ATTR_TEXT_ANCHOR, ATTR_TEXT_LENGTH, ATTR_TEXT_RENDERING, ATTR_TITLE, ATTR_TRANSFORM, ATTR_TYPE, ATTR_VALUES, ATTR_VIEW_BOX, ATTR_WIDTH, ATTR_X, ATTR_X_CHANNEL_SELECTOR, ATTR_X1, ATTR_X2, ATTR_Y, ATTR_Y_CHANNEL_SELECTOR, ATTR_Y1, ATTR_Y2, ATTR_Z, DEFAULT_VALUE_FILTER_HEIGHT, DEFAULT_VALUE_FILTER_WIDTH, DEFAULT_VALUE_FILTER_X, DEFAULT_VALUE_FILTER_Y, DEFAULT_VALUE_MASK_HEIGHT, DEFAULT_VALUE_MASK_WIDTH, DEFAULT_VALUE_MASK_X, DEFAULT_VALUE_MASK_Y, DEFAULT_VALUE_PATTERN_HEIGHT, DEFAULT_VALUE_PATTERN_WIDTH, DEFAULT_VALUE_PATTERN_X, DEFAULT_VALUE_PATTERN_Y, PATH_CLOSE, PATH_CUBIC_TO, PATH_LINE_TO, PATH_MOVE, PATH_QUAD_TO, SVG_NAMESPACE_URI, SVG_PUBLIC_ID, SVG_SYSTEM_ID, TAG_A, TAG_ANIMATE, TAG_CIRCLE, TAG_CLIP_PATH, TAG_DEFS, TAG_DESC, TAG_ELLIPSE, TAG_FE_BLEND, TAG_FE_COLOR_MATRIX, TAG_FE_COMPONENT_TRANSFER, TAG_FE_COMPOSITE, TAG_FE_CONVOLVE_MATRIX, TAG_FE_DIFFUSE_LIGHTING, TAG_FE_DISPLACEMENT_MAP, TAG_FE_DISTANT_LIGHT, TAG_FE_FLOOD, TAG_FE_FUNC_A, TAG_FE_FUNC_B, TAG_FE_FUNC_G, TAG_FE_FUNC_R, TAG_FE_GAUSSIAN_BLUR, TAG_FE_IMAGE, TAG_FE_MERGE, TAG_FE_MERGE_NODE, TAG_FE_MORPHOLOGY, TAG_FE_OFFSET, TAG_FE_POINT_LIGHT, TAG_FE_SPECULAR_LIGHTING, TAG_FE_SPOT_LIGHT, TAG_FE_TILE, TAG_FE_TURBULENCE, TAG_FILTER, TAG_G, TAG_IMAGE, TAG_LINE, TAG_LINEAR_GRADIENT, TAG_MASK, TAG_METADATA, TAG_PATH, TAG_PATTERN, TAG_POLYGON, TAG_POLYLINE, TAG_RADIAL_GRADIENT, TAG_RECT, TAG_SCRIPT, TAG_STOP, TAG_STYLE, TAG_SVG, TAG_SWITCH, TAG_SYMBOL, TAG_TEXT, TAG_TEXT_PATH, TAG_TITLE, TAG_TREF, TAG_TSPAN, TAG_USE, TRANSFORM_MATRIX, TRANSFORM_ROTATE, TRANSFORM_SCALE, TRANSFORM_SKEWX, TRANSFORM_SKEWY, TRANSFORM_TRANSLATE, VALUE_A, VALUE_ALIGN, VALUE_ARITHMETIC, VALUE_ATOP, VALUE_AUTO, VALUE_B, VALUE_BACKGROUND_IMAGE, VALUE_COMPOSITE, VALUE_CRISP_EDGES, VALUE_DARKEN, VALUE_DIGIT_ONE, VALUE_DILATE, VALUE_DISCRETE, VALUE_EDGE_DUPLICATE, VALUE_EDGE_NONE, VALUE_END, VALUE_ERODE, VALUE_EVEN_ODD, VALUE_EXACT, VALUE_FLOOD, VALUE_FONT_STYLE_ITALIC, VALUE_FONT_STYLE_NORMAL, VALUE_FONT_STYLE_OBLIQUE, VALUE_FONT_WEIGHT_100, VALUE_FONT_WEIGHT_200, VALUE_FONT_WEIGHT_300, VALUE_FONT_WEIGHT_400, VALUE_FONT_WEIGHT_500, VALUE_FONT_WEIGHT_600, VALUE_FONT_WEIGHT_700, VALUE_FONT_WEIGHT_800, VALUE_FONT_WEIGHT_900, VALUE_FONT_WEIGHT_BOLD, VALUE_FONT_WEIGHT_BOLDER, VALUE_FONT_WEIGHT_LIGHTER, VALUE_FONT_WEIGHT_NORMAL, VALUE_FRACTAL_NOISE, VALUE_G, VALUE_GAMMA, VALUE_GEOMETRIC_PRECISION, VALUE_HUE_ROTATE, VALUE_HUNDRED_PERCENT, VALUE_IDENTITY, VALUE_IN, VALUE_LIGHTEN, VALUE_LINE_CAP_BUTT, VALUE_LINE_CAP_ROUND, VALUE_LINE_CAP_SQUARE, VALUE_LINE_JOIN_BEVEL, VALUE_LINE_JOIN_MITER, VALUE_LINE_JOIN_ROUND, VALUE_LINEAR, VALUE_LINEAR_RGB, VALUE_LUMINANCE_TO_ALPHA, VALUE_MATRIX, VALUE_MIDDLE, VALUE_MULTIPLY, VALUE_NEW, VALUE_NINETY, VALUE_NO_STITCH, VALUE_NON_ZERO, VALUE_NONE, VALUE_NORMAL, VALUE_OBJECT_BOUNDING_BOX, VALUE_ONE, VALUE_OPAQUE, VALUE_OPTIMIZE_LEGIBILITY, VALUE_OPTIMIZE_QUALITY, VALUE_OPTIMIZE_SPEED, VALUE_OUT, VALUE_OVER, VALUE_PAD, VALUE_PRESERVE, VALUE_R, VALUE_REFLECT, VALUE_REPEAT, VALUE_SATURATE, VALUE_SCREEN, VALUE_SOURCE_GRAPHIC, VALUE_SRGB, VALUE_START, VALUE_STITCH, VALUE_STRETCH, VALUE_TABLE, VALUE_TURBULENCE, VALUE_TYPE_LINEAR, VALUE_TYPE_TABLE, VALUE_USER_SPACE, VALUE_USER_SPACE_ON_USE, VALUE_XOR, VALUE_ZERO, VALUE_ZERO_PERCENT
 
Fields inherited from interface org.apache.batik.util.CSSConstants
CSS_ACCUMULATE_VALUE, CSS_ACTIVEBORDER_VALUE, CSS_ACTIVECAPTION_VALUE, CSS_AFTER_EDGE_VALUE, CSS_ALIGNMENT_BASELINE_PROPERTY, CSS_ALL_VALUE, CSS_APPWORKSPACE_VALUE, CSS_AUTO_VALUE, CSS_AUTOSENSE_SCRIPT_VALUE, CSS_BACKGROUND_VALUE, CSS_BASELINE_SHIFT_PROPERTY, CSS_BASELINE_VALUE, CSS_BEFORE_EDGE_VALUE, CSS_BEVEL_VALUE, CSS_BIDI_OVERRIDE_VALUE, CSS_BLINK_VALUE, CSS_BLOCK_VALUE, CSS_BOLD_VALUE, CSS_BOLDER_VALUE, CSS_BOTTOM_VALUE, CSS_BUTT_VALUE, CSS_BUTTONFACE_VALUE, CSS_BUTTONHIGHLIGHT_VALUE, CSS_BUTTONSHADOW_VALUE, CSS_BUTTONTEXT_VALUE, CSS_CAPTIONTEXT_VALUE, CSS_CLIP_PATH_PROPERTY, CSS_CLIP_PROPERTY, CSS_CLIP_RULE_PROPERTY, CSS_COLLAPSE_VALUE, CSS_COLOR_INTERPOLATION_PROPERTY, CSS_COLOR_PROPERTY, CSS_COLOR_RENDERING_PROPERTY, CSS_COMPACT_VALUE, CSS_CONDENSED_VALUE, CSS_CRISPEDGES_VALUE, CSS_CROSSHAIR_VALUE, CSS_CURRENTCOLOR_VALUE, CSS_CURSIVE_VALUE, CSS_CURSOR_PROPERTY, CSS_DEFAULT_VALUE, CSS_DIRECTION_PROPERTY, CSS_DISPLAY_PROPERTY, CSS_DOMINANT_BASELINE_PROPERTY, CSS_E_RESIZE_VALUE, CSS_EMBED_VALUE, CSS_ENABLE_BACKGROUND_PROPERTY, CSS_END_VALUE, CSS_EVENODD_VALUE, CSS_EXPANDED_VALUE, CSS_EXTRA_CONDENSED_VALUE, CSS_EXTRA_EXPANDED_VALUE, CSS_FANTASY_VALUE, CSS_FILL_OPACITY_PROPERTY, CSS_FILL_PROPERTY, CSS_FILL_RULE_PROPERTY, CSS_FILL_VALUE, CSS_FILLSTROKE_VALUE, CSS_FILTER_PROPERTY, CSS_FLOOD_COLOR_PROPERTY, CSS_FLOOD_OPACITY_PROPERTY, CSS_FONT_FAMILY_PROPERTY, CSS_FONT_SIZE_ADJUST_PROPERTY, CSS_FONT_SIZE_PROPERTY, CSS_FONT_STRETCH_PROPERTY, CSS_FONT_STYLE_PROPERTY, CSS_FONT_VARIANT_PROPERTY, CSS_FONT_WEIGHT_PROPERTY, CSS_GEOMETRICPRECISION_VALUE, CSS_GLYPH_ORIENTATION_HORIZONTAL_PROPERTY, CSS_GLYPH_ORIENTATION_VERTICAL_PROPERTY, CSS_GRAYTEXT_VALUE, CSS_HANGING_VALUE, CSS_HELP_VALUE, CSS_HIDDEN_VALUE, CSS_HIGHLIGHT_VALUE, CSS_HIGHLIGHTTEXT_VALUE, CSS_IDEOGRAPHIC_VALUE, CSS_IMAGE_RENDERING_PROPERTY, CSS_INACTIVEBORDER_VALUE, CSS_INACTIVECAPTION_VALUE, CSS_INACTIVECAPTIONTEXT_VALUE, CSS_INFOBACKGROUND_VALUE, CSS_INFOTEXT_VALUE, CSS_INLINE_TABLE_VALUE, CSS_INLINE_VALUE, CSS_ITALIC_VALUE, CSS_LARGE_VALUE, CSS_LARGER_VALUE, CSS_LETTER_SPACING_PROPERTY, CSS_LIGHTER_VALUE, CSS_LIGHTING_COLOR_PROPERTY, CSS_LINE_THROUGH_VALUE, CSS_LINEARRGB_VALUE, CSS_LIST_ITEM_VALUE, CSS_LOWER_VALUE, CSS_LR_TB_VALUE, CSS_LR_VALUE, CSS_LTR_VALUE, CSS_MARKER_END_PROPERTY, CSS_MARKER_MID_PROPERTY, CSS_MARKER_START_PROPERTY, CSS_MARKER_VALUE, CSS_MASK_PROPERTY, CSS_MATHEMATICAL_VALUE, CSS_MEDIUM_VALUE, CSS_MENU_VALUE, CSS_MENUTEXT_VALUE, CSS_MIDDLE_VALUE, CSS_MITER_VALUE, CSS_MONOSPACED_VALUE, CSS_MOVE_VALUE, CSS_N_RESIZE_VALUE, CSS_NARROWER_VALUE, CSS_NE_RESIZE_VALUE, CSS_NEW_VALUE, CSS_NO_CHANGE_VALUE, CSS_NONE_VALUE, CSS_NONZERO_VALUE, CSS_NORMAL_VALUE, CSS_NW_RESIZE_VALUE, CSS_OBLIQUE_VALUE, CSS_OPACITY_PROPERTY, CSS_OPTIMIZELEGIBILITY_VALUE, CSS_OPTIMIZEQUALITY_VALUE, CSS_OPTIMIZESPEED_VALUE, CSS_OVERFLOW_PROPERTY, CSS_OVERLINE_VALUE, CSS_PAINTED_VALUE, CSS_POINTER_EVENTS_PROPERTY, CSS_POINTER_VALUE, CSS_RESET_VALUE, CSS_RL_TB_VALUE, CSS_RL_VALUE, CSS_ROUND_VALUE, CSS_RTL_VALUE, CSS_RUN_IN_VALUE, CSS_S_RESIZE_VALUE, CSS_SANS_SERIF_VALUE, CSS_SCROLL_VALUE, CSS_SCROLLBAR_VALUE, CSS_SE_RESIZE_VALUE, CSS_SEMI_CONDENSED_VALUE, CSS_SEMI_EXPANDED_VALUE, CSS_SERIF_VALUE, CSS_SHAPE_RENDERING_PROPERTY, CSS_SMALL_CAPS_VALUE, CSS_SMALL_VALUE, CSS_SMALLER_VALUE, CSS_SQUARE_VALUE, CSS_SRGB_VALUE, CSS_START_VALUE, CSS_STOP_COLOR_PROPERTY, CSS_STOP_OPACITY_PROPERTY, CSS_STROKE_DASHARRAY_PROPERTY, CSS_STROKE_DASHOFFSET_PROPERTY, CSS_STROKE_LINECAP_PROPERTY, CSS_STROKE_LINEJOIN_PROPERTY, CSS_STROKE_MITERLIMIT_PROPERTY, CSS_STROKE_OPACITY_PROPERTY, CSS_STROKE_PROPERTY, CSS_STROKE_VALUE, CSS_STROKE_WIDTH_PROPERTY, CSS_SUB_VALUE, CSS_SUPER_VALUE, CSS_SW_RESIZE_VALUE, CSS_TABLE_CAPTION_VALUE, CSS_TABLE_CELL_VALUE, CSS_TABLE_COLUMN_GROUP_VALUE, CSS_TABLE_COLUMN_VALUE, CSS_TABLE_FOOTER_GROUP_VALUE, CSS_TABLE_HEADER_GROUP_VALUE, CSS_TABLE_ROW_GROUP_VALUE, CSS_TABLE_ROW_VALUE, CSS_TABLE_VALUE, CSS_TB_RL_VALUE, CSS_TB_VALUE, CSS_TEXT_AFTER_EDGE_VALUE, CSS_TEXT_ANCHOR_PROPERTY, CSS_TEXT_BEFORE_EDGE_VALUE, CSS_TEXT_BOTTOM_VALUE, CSS_TEXT_DECORATION_PROPERTY, CSS_TEXT_RENDERING_PROPERTY, CSS_TEXT_TOP_VALUE, CSS_TEXT_VALUE, CSS_THREEDDARKSHADOW_VALUE, CSS_THREEDFACE_VALUE, CSS_THREEDHIGHLIGHT_VALUE, CSS_THREEDLIGHTSHADOW_VALUE, CSS_THREEDSHADOW_VALUE, CSS_TOP_VALUE, CSS_ULTRA_CONDENSED_VALUE, CSS_ULTRA_EXPANDED_VALUE, CSS_UNDERLINE_VALUE, CSS_UNICODE_BIDI_PROPERTY, CSS_VISIBILITY_PROPERTY, CSS_VISIBLE_VALUE, CSS_VISIBLEFILL_VALUE, CSS_VISIBLEFILLSTROKE_VALUE, CSS_VISIBLEPAINTED_VALUE, CSS_VISIBLESTROKE_VALUE, CSS_W_RESIZE_VALUE, CSS_WAIT_VALUE, CSS_WIDER_VALUE, CSS_WINDOW_VALUE, CSS_WINDOWFRAME_VALUE, CSS_WINDOWTEXT_VALUE, CSS_WORD_SPACING_PROPERTY, CSS_WRITING_MODE_PROPERTY, CSS_X_LARGE_VALUE, CSS_X_SMALL_VALUE, CSS_XX_LARGE_VALUE, CSS_XX_SMALL_VALUE
 
Constructor Summary
DOMGroupManager(GraphicContext gc, DOMTreeManager domTreeManager)
          Constructor
 
Method Summary
 void addElement(Element element)
          Add a node to the current group, if possible
static void main(java.lang.String[] args)
          Unit testing
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DOMGroupManager

public DOMGroupManager(GraphicContext gc,
                       DOMTreeManager domTreeManager)
Constructor
Parameters:
gc - graphic context whose state will be reflected in the element's style attributes.
domTreeManager - DOMTreeManager instance this group manager cooperates with.
Method Detail

addElement

public void addElement(Element element)
Add a node to the current group, if possible
Parameters:
element - child Element to add to the group

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Unit testing


Copyright © 2000 Apache Software Foundation. All Rights Reserved.