This is more of a musing, but in Windows Explorer, and IDEs like Eclipse, I often end up with a file tree that is expanded so many levels deep, I cannot see both the root and the files I'm working on in the same horizontal space.

Is there a better way to represent hierarchy without requiring arbitrary levels of indentation?

edited to add context: I'm looking for a directory/file view panel to go on the left side of an IDE, really.

  • 1
    Ask yourself this: why do you need to see the root and the files you're working on simultaneously? How often do you really need to go up and down so many levels in the tree? Would it be easier if you just limited the tree to a few levels?
    – Rahul
    Apr 7, 2011 at 23:52
  • Maybe I have: /src/readme.txt and /src/webapp/main/templates/email/html/signup/new.html and I don't want to have scroll horizontally to look at readme and new.html
    – blake8086
    Apr 8, 2011 at 17:44

2 Answers 2


Look at how the macOS does it using panels. Fixed height with scroll bars and it moves left-right as you click through. I used this for a similar situation last year. Additionally, you could represent the current position using bread crumbs.

Secondly, check out the new address bar in file management in Windows 7. It creates drop down boxes for each level in the address. So it basically maintains the position in the address and doubles as interface to navigate.

I hope this is helpful.

  • For more examples/details of the macOX panels example Glen refers to, search for the ui pattern "cascading lists". Apr 7, 2011 at 19:42
  • That uses a ton of "virtual" horizontal space, and introduces the modality of which directory you're in. I agree that it's an awesome UI convention, but it's not exactly what I was looking for, I'll update the question.
    – blake8086
    Apr 7, 2011 at 23:08

Yes, you can collapse in a bunch of ways.

IntelliJ's IDEA shows class hierarchies in a treeview, but an option will collapse intermediary levels and shows them as a single item (com.sun.java.foo) instead of multiple levels (com/ containing sun/ containing java/ containing foo/).

You could also use some sort of ellipsis if you don't care about the content of the intermediate levels (com.[...].foo). Generally ellipses like this get expanded in a tooltip when moused over.

You could split the area, to show both root and files.

Really it depends on what task you are trying to do that requires seeing both of these items. Are you searching for something? Organizing? Moving files around? Or do you just want context?

  • com.sun.java.foo sounds like a great way to compress a lot of unnecessary information out, I'll take a look at that.
    – blake8086
    Apr 7, 2011 at 23:09
  • @blake8086, be aware that 'com.sun.java.foo' is a standard way of writing a package name. You'll want to use whatever the standard way of gluing together a path is (e.g. c:\foo\bar under Windows) Apr 8, 2011 at 16:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.