Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
hill:275 [2009/10/13 18:36]
hill
hill:275 [2009/10/13 19:02]
hill
Line 66: Line 66:
  
  
-  * **Exercise:​** Show me an interesting call hierarchy and type hierarchy on **your** project code ("​interesting"​ = more than 3 nodes)+**Exercise:​** Show me an interesting call hierarchy and type hierarchy on **your** project code ("​interesting"​ = more than 3 nodes)
  
 ===== Basic Refactoring ===== ===== Basic Refactoring =====
 +
 +//**What is refactoring?​ Why use it?**//
 +
 +==Rename==
 +  * Right click on ''​toggleFolded''​ and select "​Refactor > Rename"​
 +  * Add your name at the end of ''​toggleFolded''​
 +  * Verify your change is complete by looking at the call hierarchy & double clicking the callers
 +
 +//**Why rename?**//
 +
 +==Extract Method==
 +  * In the renamed ''​toggleFolded'',​ select the 3 statements (6 lines) starting with ''​modeController.getAction...''​
 +  * Right click & select "​Refactor > Extract Method"​
 +  * Enter a name (e.g., "​initiateToggleAction"​) and hit enter
 +
 +//**Why extract methods?​**//​
  
 ===== Debugging in Eclipse ===== ===== Debugging in Eclipse =====
 +//​**What'​s debugging? What's a debugger?​**//​
 +
 +**Task:** How does the UI toggle folding action (click, space, etc.) initiate the ''​toggleFolded''​ implementation?​
  
 +  * In the margin next to ''​toggleFolded'',​ right click & select "​Toggle Breakpoint"​
 +  * In the menubar, select "​Window > Open Perspective > Debug"
 +  * Make sure freemind isn't running
 +  * Next to the green "​play"​ arrow, select the green bug icon {{:​hill:​bug.png|}} - there will be some delay
 +  * Toggle a node. Notice the upper-left "​Debug"​ pane, investigate the upper-right "​Variables"​ pane, and see the current statement in the editor pane. The arrows in the debug pane {{:​hill:​arrows.png|}} let you step through the execution by one method call, by one statement, or by returning.
  
-  * **Exercise:​** Show me a debugging trace for ''​toggleFolded''​. Which method calls in the trace do you think handle your input method (click, space, right click, etc.)?+**Exercise:​** Show me a debugging trace for ''​toggleFolded''​. Which method calls in the trace do you think handle your input method (click, space, right click, etc.)?
  
hill/275.txt ยท Last modified: 2009/10/14 12:33 by hill
  • 213 Smith Hall   •   Computer & Information Sciences   •   Newark, DE 19716  •   USA
    Phone: 302-831-6339  •   Fax: 302-831-8458