/** * Calculates the required left indent for a given item, given its type and its hierarchy level. */ static int getIndent(PropertySheetTable table, Item item) { int indent = 0; 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; }