19 package org.sleuthkit.autopsy.corecomponents;
21 import javax.swing.JTextPane;
22 import javax.swing.SizeRequirements;
23 import javax.swing.text.Element;
24 import javax.swing.text.View;
25 import static javax.swing.text.View.GoodBreakWeight;
26 import javax.swing.text.ViewFactory;
27 import javax.swing.text.html.HTMLEditorKit;
28 import javax.swing.text.html.InlineView;
29 import javax.swing.text.html.ParagraphView;
42 HTMLEditorKit editorKit =
new HTMLEditorKit() {
43 private static final long serialVersionUID = 1L;
46 public ViewFactory getViewFactory() {
48 return new HTMLEditorKit.HTMLFactory() {
50 public View create(Element e) {
51 View v = super.create(e);
52 if (v instanceof InlineView) {
53 return new InlineView(e) {
55 public int getBreakWeight(
int axis,
float pos,
float len) {
56 return GoodBreakWeight;
60 public View breakView(
int axis,
int p0,
float pos,
float len) {
61 if (axis == View.X_AXIS) {
63 int p1 = getGlyphPainter().getBoundedPosition(
this, p0, pos, len);
64 if (p0 == getStartOffset() && p1 == getEndOffset()) {
67 return createFragment(p0, p1);
72 }
else if (v instanceof ParagraphView) {
73 return new ParagraphView(e) {
75 protected SizeRequirements calculateMinorAxisRequirements(
int axis, SizeRequirements r) {
76 SizeRequirements requirements = r;
77 if (requirements == null) {
78 requirements =
new SizeRequirements();
80 float pref = layoutPool.getPreferredSpan(axis);
81 float min = layoutPool.getMinimumSpan(axis);
83 requirements.minimum = (int) min;
84 requirements.preferred = Math.max(requirements.minimum, (
int) pref);
85 requirements.maximum = Integer.MAX_VALUE;
86 requirements.alignment = 0.5f;
97 this.setEditorKit(editorKit);
static String escapeHtml(String toEscape)
void setText(String text)