This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
hill:275 [2009/10/13 18:35] 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.)? | + | **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.)? |