Bug 267492

Summary: [navigation] Open Implementation should filter duplicates
Product: [Eclipse Project] JDT Reporter: Andrey Loskutov <loskutov>
Component: TextAssignee: JDT-Text-Inbox <jdt-text-inbox>
Status: ASSIGNED --- QA Contact:
Severity: enhancement    
Priority: P3 CC: daniel_megert
Version: 3.5   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
Proposal none

Description Andrey Loskutov CLA 2009-03-07 05:41:35 EST
Created attachment 127902 [details]
Proposal

Build ID: I20090304-0834

use Ctrl+Mouse hover on 
ResourcesPlugin.getWorkspace().getRoot().getLocation();

It opens new nice "types implementing" dialog with 1 Resource and 3 WorkspaceRoot matches... Alltough this is a very nice feature, the number of proposals or the way how it is filtered can be improved. 

First of all, I don't care about interfaces/abstract classes which do not override this method. If I would need type hierarchy I would open it, NOT the "implementors" view.

Second, it is hard to find/understand why all the unneded matches are there => too much information is not so good.

I would change the representation and show hierarchy only for classes which really implementing the method, internally skipping all the interfaces etc. In this case, the picture will only show 1 Resource and 1 WorkspaceRoot match (see attached picture).
Comment 1 Dani Megert CLA 2009-03-10 12:11:36 EDT
Note that there are no unwanted matches in there, just duplication because we show the hierarchy and currently reuse the Ctrl+T dialog as we thought it's nice to see where the implementations are situated.

What exactly would you like to see?
Comment 2 Andrey Loskutov CLA 2009-03-10 12:15:19 EDT
(In reply to comment #1)

> What exactly would you like to see?

The bottom part of the attached picture is the information which I would like to see here.

As said before, I would change the representation and show hierarchy only for classes which *really implementing* the method, internally skipping all the interfaces etc. In this case, the picture will only show 1 Resource and 1 WorkspaceRoot match.
 

Comment 3 Dani Megert CLA 2009-03-10 12:20:01 EDT
OK, so you're fine seeing the full hierarchy? There might be many types between A and B that have no implementation (like 'Container' in your example). And you prefer to see the hierarchy compared to just show you a list of implementers?
Comment 4 Andrey Loskutov CLA 2009-03-10 12:55:53 EDT
Sure, a list of implementors would do the job, but tree is much nicer if you have a very common interface (Runnable) and want to have some structure in the result set.

So here is a list of what I want to see:

- The concrete types itself implementing the method (must have)
- The method signatures of implementors to see if their implementation is final (nice to have)
- If the concrete types have parent/child relation, then also nice to have to see them as parent/child (without interfaces) structure