/*
Core SWING Advanced Programming
By Kim Topley
ISBN: 0 13 083292 8
Publisher: Prentice Hall
*/
import javax.swing.UIManager;
import javax.swing.text.*;
import javax.swing.plaf.*;
import java.io.*;
public class TextComponentDisplay {
public static void displayModel(JTextComponent comp,
PrintStream out) {
Document doc = comp.getDocument();
if (doc instanceof AbstractDocument) {
((AbstractDocument)doc).dump(out);
}
}
public static void displayViews(JTextComponent comp,
PrintStream out) {
TextUI textUI = (TextUI)comp.getUI();
View rootView = textUI.getRootView(comp);
displayView(rootView, 0, out);
}
public static void displayView(View view, int tabs,
PrintStream out) {
// Print info about this view
for (int i = 0; i < tabs; i++) {
out.print("\t");
}
out.println(view.getClass().getName());
for (int i = 0; i < tabs; i++) {
out.print("\t");
}
out.println("Start: " + view.getStartOffset() +
"; end: " + view.getEndOffset());
// Display child views, if any.
int childViews = view.getViewCount();
for (int i = 0; i < childViews ; i++) {
View childView = view.getView(i);
displayView(childView, tabs + 1, out);
}
}
}
|