String (@Nullable String name) { if (name != null) { AbstractTreeNode<?> parent = getParent(); FileNode node = parent instanceof FileNode ? (FileNode)parent : null; String prefix = node == null ? null : node.getPackageName(); if (prefix == null) return name; int length = prefix.length(); if (length > 0 && name.startsWith(prefix)) { if (length < name.length() && '.' == name.charAt(length)) length++; if (length < name.length()) return name.substring(length); } LOG.info("unexpected prefix: " + prefix + " for package: " + name); } if (compacted != null) { StringBuilder sb = new StringBuilder(); char separator = isPackage(getIcon()) ? '.' : VfsUtilCore.VFS_SEPARATOR_CHAR; compacted.forEach(file -> sb.append(file.getName()).append(separator)); return sb.append(getVirtualFile().getName()).toString(); } return getVirtualFile().getName(); }