Swing JFC Java

/*
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);
    }
  }
}