New IntelliJ Project View Experiences?

Hello all,

I already have another thread running on this forum about it, plus 1 or 2 Jira issues, but I was wondering why not more people are complaining about the new project view. How do you work on multiple modules and their dependencies? Why would anyone prefer a list of ALL dependencies of ALL modules loaded in IntelliJ, compared to the IntelliJ 8 dependency-per-module view? I know now that you can also see the depenencies by Pressing ALT+F1, select the project structure, go to the dependency tab, and go through that list on item at a time, since it's ordered by randomness, instead of, say, alphabetically? And if you then want to see if that class you're looking for is really in that library (I didn't know if I was using Junit 4.5 or 4.7 yesterday, which caused some problems for me...), you'll have to close that window, go to the external libraries list (I have around 200-300 libraries there...really manageable, even though they are nicely bound to some modules (at least, in IntelliJ 8) , and then I have to click the library open, find the classes I'm looking for, and then go back to the module I was actually working on. If I can still remember which one that was after going around my IDE in such a way. The philosophy behind this change is that some users complained (in 2005!!) that they didn't understand where their files went, and that therefore the project view should reflect the file structure. (and external libraries, apparently???).

I don't know if any of you uses Eclipse, but in Eclipse, you can choose between a Resource view (sort of IntelliJ 9 project view) and a Project View (a sort of IntelliJ 8 project view, but less powerful since it lacks modules/groups). In IntelliJ 9, we'll get the the Eclipse Resource view. My question: do you really want that?? "Nobody" in the Eclipse world even uses the Resource view!

In IntelliJ 8, you (could...) see the dependencies of the module in the project view. They are tightly coupled to the module they belong to, and the modules are nicely organized in groups. You cannot be mistaken in which dependency belongs to which module, since it's reflected in the Project View. Also, the list (per module) is around 15-20 dependencies long. This can be easily handled by anyone, since the list is so short. However, when you have around 30 modules (which I have, but usually more, 6 projects, each 4-6 modules) open at the same time, this list can grow to more than 500 dependencies in IntelliJ 9 (around 200-300 in my case because I often depend on the same dependencies).

A question to Jetbrains: if you really want to make this change you intend (or already have done), wouldn't it be better to just allow an extra 'view as' option? For example, a 'View as Filesystem', and a 'View as Project Structure' way? I guess that would already solve most, if not all, of my pains......

Thanks for reading this rant, but it's been keeping me busy for the last couple of days ;-)

Erik

PS: I've attached some screenshots again, to show the difference between IntelliJ 8 and IntelliJ 9....

PS2: You can track this issue here now: http://youtrack.jetbrains.net/issue/IDEA-53408



Attachment(s):
Screen shot 2009-11-09 at 10.36.11.png
IntelliJ 8.png
140 comments

Well, I've installed and tried the new EAP version. I'm sad to see that so much efforts go into creating something as unusable as this. What happened to the 'Develop with pleasure' slogan? I've now lost another 10 cm of screen because now I need the Project View open AS WELL as the the Maven Projects view, and it doesn't even help me...

<frustration mode>

Ah, this is wrong on so many levels, I don't even know where to begin! I now suddenly need two collapsable view (Maven Project and Project Browser), my dependency list is still a mess since it's not 'per module', but just a bunch of libs (If I wanted a bunch of libs, I would have created a 'lib' dir and would have thrown anything in it. The Maven dependency browser doesn't show the source of the dependency, nor is it linked with the project, and I have to click with my mouse(!!!!!!!!!!) on 7(!!!) nodes to find the dependency my module uses. And if I then found the module, and want to check which (eg, in case of Hibernate Validator) want to know which Validation annotations it contains), so then I have to go to the other side of the screen, go through my HUGE list (150+ libraries) to find the right dependency (some dependencies show up more than 4 times, because of different versions, so I have to be extra careful), and then I have to go back to the location in my code where I want to use the library, if I can still remember that.

My question to you: WHY??? Why do I have to go through all this trouble just so the the libraries I want to use?? I will of course never do the above, it's far easier to do a CMD+SHIFT+n and open the correct POM file to see the dependencies. No idea how to find out the jar contents after that however. How can you ever use IntelliJ now in a modularized environment? I can't open multiple instances of the IDE, since that's unworkable on a Mac (nor would I ever do that on a windows machine, for that matter). I never had to do that in IntelliJ 8, I will never do that for IntelliJ 9.

</frustration mode>

0

Erik,

Do you really expect any response to this if you're just trying to express your emotions here?

If former is true, let's try to come up together with replacement of your use case of maven library list in Project View, since project view now doesn't show any modules (it only shows files and directories, marking content roots of the modules as such visually). To do that please first of all explain it as much details as possible.

If latter is true please find another place, it's not welcome here.

Regards,
Maxim Shafirov

0

Maxim, I think I'm one of the most passionate users of IntelliJ in my country, so yes, I'm quite emotional about the product I use almost more often than I use my OS.

I've given feedback, more feedback, I've created issues in YouTrack which are closed without further response, I've created screenshots of my suggestions: what more do you want? I apparently have to post such non-sense crap to get some attention, since the normal way doesn't seem to work anymore.

While my tone doesn't make any sense ofcourse (and I apologize for that), my points are still the same. In the state IntelliJ 9 currently is, I cannot use it. The reasons I've stated above, in the screenshot, in youtrack, etc, and I don't feel like repeating myself.

I do not agree with your statement about the project view btw, since it doesn't show 'only files and directories', it also shows 'external libraries'.

Tell me what you want to know, I'd be more than happy to discuss. We can also chat or skype about it (you'll see then that I'm really not that annoying as above), but I think I've given some idea's on how to make this better:

1) create a resource view with only files and directories, and a project view with modules + dependencies per module (much like IntelliJ 8)
2) maybe implement a hierarchical view, but rather not. This doesn't really fit in the project view, but is more Maven specific, and I wouldn't built a Maven view.
3) for the pom, create a tab to show the graphical dependencies, instead of by right-clicking on the module in the maven graph

I've created another screenshot, maybe that can serve as a more solid base for further discussion?

Erik



Attachment(s):
Screen shot 2009-11-23 at 20.16.13 copy.png
0

Btw, both NetBeans (http://today.java.net/article/2009/10/14/working-maven-netbeans-671) and Eclipse (and IntelliJ 8 for that matter...) support dependencies per module (though Eclipse thinks a module is a project, so in effect, the dependencies + source are still per module).

(ps: my Skype name is e_pragt, my MSN name is e_pragt [A T ] hotmail.com, so if you want to discuss why I need this and it's still unclear, let me know.)

Eclipse
eclipse project structure.png
NetBeans
netbeans-maven-project-structure.png

0

I am replying just to say I agree with Erik and I think many also share his view, just some of them do not post on forums or did not try the beta yet.

I have no idea why the project view was changed from version 8. It was great. At least give us the option to view dependencies per project (on the project view) and see the project view without the hierarchial view.

0

Same here. While I don't share Erik's loathe for the new project view, I agree that losing capabilities present in the previous version is sudden and disappointing. Keeping the IJ8 project view as a "Project Structure View" would be a nice compromise, I believe.

0

On 24/11/2009 13:56, Marcus Brito wrote:

Same here. While I don't share Erik's loathe for the new project
view, I agree that losing capabilities present in the previous
version is sudden and disappointing. Keeping the IJ8 project view as
a "Project Structure View" would be a nice compromise, I believe.

>

--- Original message URL:
http://www.jetbrains.net/devnet/message/5250798#5250798

+1

N.

0

+1  I can still work with the Maia project view, but it was much clearer and easier to use in IDEA 8 where the module dependencies were associated with their module. I think lumping them all together has been a major step backwards - I have a project with a server module and a client module and I can't see which libraries are used by which module without opening the modal Project Structure window. I now use a paper copy showing which module has what libraries... crazy.

0

Hi Dave (and the rest!),

Thanks for the feedback. I hope that this way it's a little clearer to JetBrains that it's not a personal wish to ask for a feature, but rather to have something like the old functionality restored. I have the setup as you have: a client and a server, but than 6 times (6 clients and 6 servers, plus shared modules, plus util modules, etc). You can probably understand the difficulties I have to manage those projects in the new way IntelliJ is showing those dependencies. Even the paper way is not a solution for me, since (as stated above) I have more than 150 dependencies to manage. As you can see, that will be unmanagable, and I this counts for every project which has more than 1 module.

0

Erik,
I've just asked for the use cases and got no answer so I'll try to guess if my understanding is correct and you'll correct me if I'm wrong, OK?

So, you need to *view* what particular libraries given module depends on. This kind of information is available in Project Structure but that's modal and not easily accessible.
This kind of information now present in Maven view but modules are somewhat deep in tree hierarchy there and you used to find modules in Project View easier. Correct?

My suggestion is to display dependency information in Structure View for the module, which content root is displayed currently in Project View. These two toolwindows can be displayed simultaneously at the IDE left so no screen waste happens. Would that work? What do you think?

0

Maxim, are you suggesting a second (Module) Structure view, alongside the current (Class) Structure view?

If so, I could live with that - it wouldn't be practical to have all three open at once when docked, but if all three were required at once, one or more could be undocked.

0

Dave, I was thinking about reusing same structure view we use for class structures. I.e. when focus in project view and module directory is selected structure view shows dependencies of the module. When class or file is selected in project view or file editor is active same view shows structure of the class/file.

0

Hi Maxim,

I didn't get from your message that you were asking for a use case, though I think I gave some already.

You are correct that I need to see the dependencies per module. I (for example) don't want my UI module to depend on Hibernate (in certain cases I might, but usually, I don't want that).

I see that the information is accessible in the project structure, but it's indeed not easily accessible, so I doubt I will ever use that (nor have I ever used it).

I don't think this information should be in the Maven view. It's taking up space, and I presume it's not Maven specific (I can imagine that just by using IntelliJ without Maven, you can create a multi-module project with per-module dependencies. I would not prefer those to end up in either a Maven view nor in the long list of dependencies). Not all information is present in the Maven view, since IntelliJ 8
- automatically navigates to the dependency when clicking on a class in the dependency
- it shows the contents of the dependency, something the current Maven structure doesn't do.

Furthermore, the dependency tree is indeed hard to navigate, and once I really found out which dependencies my module has, I have to search the project view for the right library and it's contents.

Your solution might work if I understand correctly. Please take a look at the screenshot (yes, again!), to see if my understanding of what you mean is correct.

At the moment, however, it's still unclear to me why this change is necessary. The old structure was great. If you want to introduce a file structure in IntelliJ, go ahead, but please in a different view (in the View As) for example. What's wrong with the IntelliJ 8 version?

I still don't think that this solution is really a workable solution. I still have the problem that I don't want my project to look like my project. I've written a very long story about this here: http://youtrack.jetbrains.net/issue/IDEA-25835. This dependeny structure doesn't solve that at all. I still can't reference directories with modules outside my project and make them look like they are in my current project, like I could with IntelliJ 8. This will be a huge miss for me, and maybe for others as well. The more I think about it, the more I'd like to have the old project structure back, plus maybe a 'View as filesystem' thingy. (Which I'll never use, but if you want it, fine by me)

Erik

PS: Thanks for responding to this feedback.



Attachment(s):
dependency structure.png
0

Hi Maxim,

Somewhat related to this, as detailed in the other thread about the project view the main loss for me would be the loss of module groups. We have a very large project and we have our modules in a single directory. Previously we organised them using module groups but they've disappeared from the Maia project view. Dmitry replied (http://www.jetbrains.net/devnet/message/5249471#5249471 ) suggesting that I reorganise our project, but that's not really an option for me and it seems crazy to have to reorganise our project just because some functionality has been removed. Is there any way they could be put back?

Cheers,
Colin

0

> if I understand correctly. Please take a look at the screenshot
Yep, this is exactly what I mean

> automatically navigates to the dependency when clicking on a class in the dependency
Having in mind many modules can depend on certain library (say, JUnit) random module's Library node will (in 8th) be opened. I would hardly agree this adds to clear understanding what belongs to where and depends on what.

> I still can't reference directories with modules outside my project and make them look like they are in my current project
I don't get what you're saying here. Probably we're talking using different terminology?

> External Libraries
Actually, this node shows libraries, which have their jars located outside any module's content root (which appears to be the way Maven works, unfortunately). In our (IDEA) project, for instance, we have all the libraries stored in version control under lib folder so that's where I'll now find them in Project View.

0

Hi Colin,

> Is there any way they could be put back?
I can't see how this could be done. I.e. mixing directories and module groups nodes is not an option.

0

I also don't understand why you can't put it bakc. I totally agree with Colin. Like I've said before: get the previous screen back, call it 'project view', and use the new view as a 'resource view'. How hard can that be?

Please take a look at the last screenshot I made, since they take to much of my time, to see the mess IntelliJ 9 is making, compared to the group view of IntelliJ 8. Mind you, it's the same project and same directory structure!

The MDE, MDC and MDS are all individually releasable products (maybe you would call them projects), but they share common libraries. Maybe you would open multiple IntelliJ's for this (one project per IDE), but that's not a workable solution (for refactoring, statistics, switching from IDE to IDE, etc, etc). I just want the modules/projects to be grouped and show their dependencies, just like Eclipse, NetBeans and IntelliJ 8.



Attachment(s):
intellij 9 vs 8.png
0

> > if I understand correctly. Please take a look at the screenshot

> Yep, this is exactly what I mean
Then I would have to say: -1.

I don't like it at all. It's taking way to much of my screen, I will be constantly showing and hiding this screen. Also, it doesn't solve the problem Colin is having (see below).

> > automatically navigates to the dependency when clicking on a class in the dependency

> Having in mind many modules can depend on certain library (say, JUnit) random module's Library node will (in 8th) be opened. I would hardly agree this adds to clear understanding what belongs to where and depends on what.

Ofcourse not. Module 1 depends on Junit 4.6. Module 2 depends on Junit 4.6. Module 3 depends on Junit 4.7. No random nodes will be opened. It doesn't happen in IntelliJ 8. IntelliJ 8 knows which dependencies are connected to which module. So when clicking on a certain library, IntelliJ will jump to the right one. I really don't see where the randomness comes from: my the module 2 dependencies are only valid for module 2, so how could this be intermixed? What you say happens right now: you have a huge list of dependencies for your project! If I have 3 or 4 different versions of JUnit, they will all show in my external dependencies. If I have 2 times version 4.5, and two times version 4.6, They will end up two times in the external dependencies, but I have no idea which modules uses which library.

> > I still can't reference directories with modules outside my project and make them look like they are in my current project

> I don't get what you're saying here. Probably we're talking using different terminology?

I've made a screenshot to show what I mean. It's also in the YouTrack.

> > External Libraries

> Actually, this node shows libraries, which have their jars located outside any module's content root (which appears to be the way Maven works, unfortunately). In our (IDEA) project, for instance, we have all the libraries stored in version control under lib folder so that's where I'll now find them in Project View.

I'm fortunately Maven works like this. I don't want my jars in my project nor in SVN. My modules all use different versions of libraries, which is never possible in a big directory of jars. There you wouldn't be able to use version 4.5 and version 4.6 of JUnit, since these would clash. I, however, have many (related) project, which can be released on their own, but are all in the same project. So if I work on module 1, I can work on it, change it's dependencies, and release it, without affecting all the other modules. Therefor the dependencies can go out of sync, which is as intended, and which works excellent with IntelliJ 8, since each module shows it's own dependencies and is a group on it's own.

I really would like to have the old IntelliJ 8 view back. You're introducing so many problems I never encountered in 8, and it's still unclear why you are doing this.

0

I never use the project structure view so this solution will not work for me. I don't understand why not just put what you had in version 8 back into the IDE?

0

Not to much to add to this, but I agree.

0

I don't get why pressing Alt+7 when you need to view dependencies and pressing same once again when you no longer need it may be a problem.

0

What's the use of Alt 7 if you want to show the classes in the dependencies?

0

I also don't understand why putting the view back is such a problem. And I also don't understand why you don't want to answer the 'why is this changed' question.

0

Alt+7 shows structure view, where you'll be able to browse library classes once I'll be able to stop chatting and go back to work.

0

You can go and work on whatever you want. But don't say we agreed that this change is any good or solves the problem, because we didn't.

0

Indeed, the only response I hear is "get it back where it was" stuff. But it isn't very productive in finding the way out and coming up with an instrument everyone will find useful, clear and consistent.
Anyway, hopefully implementing "structure view" dependency viewer wouldn't take long so let's return to the topic when it is done so you can objectively use it and say if you like it or not.

0

Hi, Erik,

You wrote
> If I have 2 times version 4.5, and two times version 4.6, They will end up two times in the external dependencies, but I have no idea which modules uses which library.

That is not the case, since Maven libraries are configured as project libraries and shared across modules. If you have dependencies on junit 4.0 from several modules, you'll see only one library in the External Libraries.

What you are describing are two use cases.
First, you need to see that are the dependencies of a particular module, and, as Maxim suggest, you could see them in the Structure View.
Second, you want too see, for instance, where some class is located and that are its neighbours; you can use good old Select In Project View - the library in the External Libraries will be selected and expanded, showing the content.

These are really separate tasks and probably it will be easy to get used to and convenient to use  Structure View for list dependeices and External Libraries ro browse classes in a library.

What do you think?

0

I think it's a shame, and also a little offending, that you say this. I've given you quite some reasons why I want this back, but I get the feeling you're not taking this serious in any way, and just implement something without a clear focus. If you want to continue this discussion in a productive way, let me know. If you just want to implement something you think is useful, rather than listing to suggestions given by your users, ofcourse you can do that, but I don't hear anyone in the forum who wants to have a solution like that. It's also quite clear you have complete different use case you are building. For you, the bunch of libraries is a perfect fit, since you just have a bunch of dependencies. Other people (like me) don't have that, and try to manage their dependencies as well as possible, which is clearly something different.

Frankly, I think it's a waste of your time for building this, and a waste of my time for spending any time for ideas on improving this.

0

Hello Anton,

I have no idea where you get the idea that maven has the concept of "project dependencies".

Maven has pom.xml that are either parent pom or built into some kind of artifact (jar, swf, war).

When saying "project dependencies" - are you refering to parent pom? In that case it works by having the children inherit those dependencies. The children can also add dependencies of his own. We have the unit testing frameworks in the parent pom but other then that, all other dependencies are in the module pom.xml

So even those use cases where you have parent pom you can still read it as every module have these and have dependencies on a module level and remove the whole "project dependencies concept" that was added.

0

Please sign in to leave a comment.