/**
*
*/
package org.owasp.webscarab.util.swing;
/**
* @author rdawes
*
*/
import javax.swing.text.*;
public class NoWrapEditorKit extends StyledEditorKit {
private static final long serialVersionUID = 2867130121374027370L;
public ViewFactory getViewFactory() {
return new StyledViewFactory();
}
static class StyledViewFactory implements ViewFactory {
public View create(Element elem) {
String kind = elem.getName();
if (kind != null) {
if (kind.equals(AbstractDocument.ContentElementName)) {
return new MyLabelView(elem);
} else if (kind.equals(AbstractDocument.ParagraphElementName)) {
return new ParagraphView(elem);
} else if (kind.equals(AbstractDocument.SectionElementName)) {
return new NoWrapBoxView(elem, View.Y_AXIS);
} else if (kind.equals(StyleConstants.ComponentElementName)) {
return new ComponentView(elem);
} else if (kind.equals(StyleConstants.IconElementName)) {
return new IconView(elem);
}
}
return new LabelView(elem);
}
}
static class NoWrapBoxView extends BoxView {
public NoWrapBoxView(Element elem, int axis) {
super(elem, axis);
}
public void layout(int width, int height) {
super.layout(32768, height);
}
public float getMinimumSpan(int axis) {
return super.getPreferredSpan(axis);
}
}
static class MyLabelView extends LabelView {
public MyLabelView(Element elem) {
super(elem);
}
public float getPreferredSpan(int axis) {
float span = 0;
if (axis == View.X_AXIS) {
int p0 = getStartOffset();
int p1 = getEndOffset();
checkPainter();
TabExpander ex = getTabExpander();
if (ex == null) {
// paragraph implements TabExpander
ex = (TabExpander) this.getParent().getParent();
}
span = getGlyphPainter().getSpan(this, p0, p1, ex, 0);
return Math.max(span, 1);
} else {
span = super.getPreferredSpan(axis);
}
return span;
}
}
}