Class TextContainer
java.lang.Object
com.github.weisj.jsvg.nodes.AbstractSVGNode
com.github.weisj.jsvg.nodes.container.BaseContainerNode<TextSegment>
com.github.weisj.jsvg.nodes.text.TextContainer
- All Implemented Interfaces:
Container<TextSegment>, HasContext, HasContext.ByDelegate, HasFontContext, HasFontRenderContext, HasPaintContext, HasShape, HasVectorEffects, Renderable, SVGNode, TextSegment, TextSegment.RenderableSegment
- Direct Known Subclasses:
LinearTextContainer, TextPath
abstract class TextContainer
extends BaseContainerNode<TextSegment>
implements TextSegment.RenderableSegment, HasShape, HasContext.ByDelegate, HasVectorEffects, Renderable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classNested classes/interfaces inherited from interface HasContext
HasContext.ByDelegateNested classes/interfaces inherited from interface HasShape
HasShape.BoxNested classes/interfaces inherited from interface TextSegment
TextSegment.RenderableSegmentNested classes/interfaces inherited from interface TextSegment.RenderableSegment
TextSegment.RenderableSegment.UseTextLengthForCalculation -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate HasContextprotected AttributeFontSpecprivate booleanprotected LengthAdjustprivate final List<@NotNull TextSegment> protected Lengthprivate Set<VectorEffect> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanacceptChild(@Nullable String id, @NotNull SVGNode node) Determine whether the container accepts thisSVGNodeas a child.private voidaccumulateRenderableSegmentMetrics(@NotNull TextSegment.RenderableSegment segment, @NotNull TextContainer.IntermediateTextMetrics metrics, @NotNull RenderContext currentContext) private voidaccumulateSegmentMetrics(@NotNull TextContainer.IntermediateTextMetrics metrics, @NotNull StringTextSegment segment, @NotNull SVGFont font, float letterSpacing, int index) final voidaddContent(char[] content) voidappendTextShape(@NotNull GlyphCursor cursor, @NotNull MutableGlyphRun glyphRun, @NotNull RenderContext context) voidbuild(@NotNull AttributeNode attributeNode) List<? extends @NotNull TextSegment> children()Return all children of this container.protected abstract voidcleanUpLocalCursor(@NotNull GlyphCursor current, @NotNull GlyphCursor local) @NotNull TextMetricscomputeTextMetrics(@NotNull RenderContext context, @NotNull TextSegment.RenderableSegment.UseTextLengthForCalculation flag) @NotNull HasContextprotected abstract GlyphCursorcreateLocalCursor(@NotNull RenderContext context, @NotNull GlyphCursor current) protected void(package private) voidforEachSegment(@NotNull RenderContext context, @NotNull BiConsumer<StringTextSegment, RenderContext> onStringTextSegment, @NotNull BiConsumer<TextSegment.RenderableSegment, RenderContext> onRenderableSegment) (package private) abstract @NotNull ShapeglyphShape(@NotNull RenderContext context) booleanbooleanisVisible(@NotNull RenderContext context) private @NotNull GlyphAdvancementlocalGlyphAdvancement(@NotNull RenderContext context, @NotNull GlyphCursor cursor) voidprepareSegmentForRendering(@NotNull GlyphCursor cursor, @NotNull RenderContext context, @NotNull TextOutput textOutput) protected final voidrenderSegment(@NotNull GlyphCursor cursor, @NotNull RenderContext context, @NotNull Output output) voidrenderSegmentWithoutLayout(@NotNull GlyphCursor cursor, @NotNull RenderContext context, @NotNull Output output) (package private) @NotNull List<@NotNull TextSegment> segments()private doubletextAnchorOffset(@NotNull TextAnchor textAnchor, @NotNull GlyphCursor glyphCursor) @NotNull Rectangle2DuntransformedElementBounds(@NotNull RenderContext context, HasShape.Box box) final @NotNull ShapeuntransformedElementShape(@NotNull RenderContext context, HasShape.Box box) @NotNull Set<VectorEffect> Methods inherited from class BaseContainerNode
addChild, isAcceptableTypeMethods inherited from class AbstractSVGNode
id, toStringMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Container
childrenOfTypeMethods inherited from interface HasContext.ByDelegate
fontRenderContext, fontSpec, paintContextMethods inherited from interface HasShape
elementBounds, elementShapeMethods inherited from interface Renderable
parseIsVisible, render, requiresInstantiation, shouldEstablishChildContextMethods inherited from interface TextSegment
isValid
-
Field Details
-
segments
-
fontSpec
-
lengthAdjust
-
textLength
-
isVisible
private boolean isVisible -
context
-
vectorEffects
-
-
Constructor Details
-
TextContainer
TextContainer()
-
-
Method Details
-
build
- Specified by:
buildin interfaceSVGNode- Overrides:
buildin classAbstractSVGNode
-
vectorEffects
- Specified by:
vectorEffectsin interfaceHasVectorEffects
-
contextDelegate
- Specified by:
contextDelegatein interfaceHasContext.ByDelegate
-
segments
-
acceptChild
Description copied from class:BaseContainerNodeDetermine whether the container accepts thisSVGNodeas a child. By default, this will always report true but subclasses may choose to reject certain types of nodes.- Overrides:
acceptChildin classBaseContainerNode<TextSegment>- Parameters:
id- the id of the nodenode- the node itself- Returns:
- whether the node can be inserted as a child.
-
doAdd
- Specified by:
doAddin classBaseContainerNode<TextSegment>
-
addContent
public final void addContent(char[] content) - Specified by:
addContentin interfaceSVGNode- Overrides:
addContentin classAbstractSVGNode
-
children
Description copied from interface:ContainerReturn all children of this container. Note that the return type of this function internationally contains a wild card to make it a compilation error trying to modify it.- Specified by:
childrenin interfaceContainer<TextSegment>- Returns:
- the list of children.
-
glyphShape
-
untransformedElementShape
@NotNull public final @NotNull Shape untransformedElementShape(@NotNull @NotNull RenderContext context, HasShape.Box box) - Specified by:
untransformedElementShapein interfaceHasShape
-
createLocalCursor
protected abstract GlyphCursor createLocalCursor(@NotNull @NotNull RenderContext context, @NotNull @NotNull GlyphCursor current) -
cleanUpLocalCursor
protected abstract void cleanUpLocalCursor(@NotNull @NotNull GlyphCursor current, @NotNull @NotNull GlyphCursor local) -
renderSegment
protected final void renderSegment(@NotNull @NotNull GlyphCursor cursor, @NotNull @NotNull RenderContext context, @NotNull @NotNull Output output) -
textAnchorOffset
private double textAnchorOffset(@NotNull @NotNull TextAnchor textAnchor, @NotNull @NotNull GlyphCursor glyphCursor) -
forEachSegment
void forEachSegment(@NotNull @NotNull RenderContext context, @NotNull @NotNull BiConsumer<StringTextSegment, RenderContext> onStringTextSegment, @NotNull @NotNull BiConsumer<TextSegment.RenderableSegment, RenderContext> onRenderableSegment) -
computeTextMetrics
@NotNull public @NotNull TextMetrics computeTextMetrics(@NotNull @NotNull RenderContext context, @NotNull @NotNull TextSegment.RenderableSegment.UseTextLengthForCalculation flag) - Specified by:
computeTextMetricsin interfaceTextSegment.RenderableSegment
-
accumulateRenderableSegmentMetrics
private void accumulateRenderableSegmentMetrics(@NotNull @NotNull TextSegment.RenderableSegment segment, @NotNull @NotNull TextContainer.IntermediateTextMetrics metrics, @NotNull @NotNull RenderContext currentContext) -
accumulateSegmentMetrics
private void accumulateSegmentMetrics(@NotNull @NotNull TextContainer.IntermediateTextMetrics metrics, @NotNull @NotNull StringTextSegment segment, @NotNull @NotNull SVGFont font, float letterSpacing, int index) -
hasFixedLength
public boolean hasFixedLength()- Specified by:
hasFixedLengthin interfaceTextSegment.RenderableSegment
-
renderSegmentWithoutLayout
public void renderSegmentWithoutLayout(@NotNull @NotNull GlyphCursor cursor, @NotNull @NotNull RenderContext context, @NotNull @NotNull Output output) - Specified by:
renderSegmentWithoutLayoutin interfaceTextSegment.RenderableSegment
-
prepareSegmentForRendering
public void prepareSegmentForRendering(@NotNull @NotNull GlyphCursor cursor, @NotNull @NotNull RenderContext context, @NotNull @NotNull TextOutput textOutput) - Specified by:
prepareSegmentForRenderingin interfaceTextSegment.RenderableSegment
-
appendTextShape
public void appendTextShape(@NotNull @NotNull GlyphCursor cursor, @NotNull @NotNull MutableGlyphRun glyphRun, @NotNull @NotNull RenderContext context) - Specified by:
appendTextShapein interfaceTextSegment.RenderableSegment
-
localGlyphAdvancement
@NotNull private @NotNull GlyphAdvancement localGlyphAdvancement(@NotNull @NotNull RenderContext context, @NotNull @NotNull GlyphCursor cursor) -
untransformedElementBounds
@NotNull public @NotNull Rectangle2D untransformedElementBounds(@NotNull @NotNull RenderContext context, HasShape.Box box) - Specified by:
untransformedElementBoundsin interfaceHasShape
-
isVisible
- Specified by:
isVisiblein interfaceRenderable
-