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
hill:275 [2009/10/13 18:27]
hill
hill:275 [2009/10/14 12:33] (current)
hill
Line 64: Line 64:
  
 //**What information does the type hierarchy give you? Why is it useful for understanding a program?​**//​ //**What information does the type hierarchy give you? Why is it useful for understanding a program?​**//​
 +
 +
 +**Exercise:​** Show me an interesting call hierarchy and type hierarchy on **your own** project code (where "​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.)?
  
hill/275.1255472857.txt.gz ยท Last modified: 2009/10/13 18:27 by hill
  • 213 Smith Hall   •   Computer & Information Sciences   •   Newark, DE 19716  •   USA
    Phone: 302-831-6339  •   Fax: 302-831-8458