Bug 401233 - [refactoring] [push down] Push Down errors related to dependencies should be presented earlier and be more actionable
Summary: [refactoring] [push down] Push Down errors related to dependencies should be ...
Status: ASSIGNED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.2   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: JDT-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-19 15:18 EST by Mohsen Vakilian CLA
Modified: 2013-02-20 04:03 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mohsen Vakilian CLA 2013-02-19 15:18:38 EST
Build id: 20120920-0800

I've got a suggestion for improving Push Down based an analysis of the usage data collected by CodingSpectator <http://codingspectator.cs.illinois.edu/>.

If the user selects a member to Push Down that is referenced in some method, the refactoring tool will report the following error message:

> Pushed down member {0} is referenced by {1}

Our participants invoked Push Down for a total of 8 times. One of our participants got the above message in 4 of his invocations of Push Down. Often, he had to cancel and reinvoke the refactoring multiple times to perform the refactoring.

There are two ways to improve the behavior of the refactoring tool in such a situation:

1. The refactoring tool should report the error message earlier, when the user is on the first input and is selecting the members to Push Down. Currently, the error message is presented during the final step of the refactoring. This increases the cost of using the tool, because the programmer has to go back and forth in the refactoring wizard, modifying the selections and trying again. If the error is presented on the first input page when the user is selecting the members to push down, he/she can adjust the selections accordingly.

2. The error message should be more actionable. Currently, the error message doesn't suggest any course of actions to remedy the issue. For example, the error message could suggest that the programmer breaks the dependency in the code or selects the depenents on the input page as well.