code: static int getIndent(PropertySheetTable table, Item item) {
          int indent;
  
          if (item.isProperty()) {
              // it is a property, it has no parent or a category, and no child
              if ((item.getParent() == null || !item.getParent().isProperty())
                      && !item.hasToggle()) {
                  indent = table.getWantsExtraIndent() ? HOTSPOT_SIZE : 0;
              } else {
                  // it is a property with children
                  if (item.hasToggle()) {
                      indent = item.getDepth() * HOTSPOT_SIZE;
                  } else {
                      indent = (item.getDepth() + 1) * HOTSPOT_SIZE;
                  }
              }
  
              if (table.getSheetModel().getMode() == PropertySheet.VIEW_AS_CATEGORIES
                      && table.getWantsExtraIndent()) {
                  indent += HOTSPOT_SIZE;
              }
  
          } else {
              // category has no indent
              indent = 0;
          }
          return indent;
      }
docs: Calculates the required left indent for a given item, given its type and
  its hierarchy level.