protected PdfObjectTreeNode(PdfObject object) {
   super(null, getCaption(object));
   this.object = object;
   switch (object.type()) {
     case PdfObject.INDIRECT:
       if (isRecursive()) icon = IconFetcher.getIcon("ref_recursive.png");
       else icon = IconFetcher.getIcon("ref.png");
       return;
     case PdfObject.ARRAY:
       icon = IconFetcher.getIcon("array.png");
       return;
     case PdfObject.DICTIONARY:
       icon = IconFetcher.getIcon("dictionary.png");
       return;
     case PdfObject.STREAM:
       icon = IconFetcher.getIcon("stream.png");
       return;
     case PdfObject.BOOLEAN:
       icon = IconFetcher.getIcon("boolean.png");
       return;
     case PdfObject.NAME:
       icon = IconFetcher.getIcon("name.png");
       return;
     case PdfObject.NULL:
       icon = IconFetcher.getIcon("null.png");
       return;
     case PdfObject.NUMBER:
       icon = IconFetcher.getIcon("number.png");
       return;
     case PdfObject.STRING:
       icon = IconFetcher.getIcon("string.png");
       return;
   }
 }
 /**
  * Creates a page navigation action.
  *
  * @param listener the object listening to the page navigation
  * @param type the type of action
  * @param withIcon if false, no icon will be attached to the action
  */
 public PageNavigationAction(PageNavigationListener listener, int type, boolean withIcon) {
   super();
   this.listener = listener;
   this.type = type;
   if (withIcon) {
     switch (type) {
       case FIRST_PAGE:
         icon = IconFetcher.getIcon("navigation_first.png");
         break;
       case PREVIOUS_PAGE:
         icon = IconFetcher.getIcon("navigation_previous.png");
         break;
       case NEXT_PAGE:
         icon = IconFetcher.getIcon("navigation_next.png");
         break;
       case LAST_PAGE:
         icon = IconFetcher.getIcon("navigation_last.png");
         break;
     }
   }
 }