Eclipse workshop Mar. 2016
Eclipse workshopMar. 2016
• Miguel Pardal– LEIC 2000– Assistant Professor at Técnico Lisboa– http://web.tecnico.ulisboa.pt/miguel.pardal
– Eclipse user since 2005– Conditional fan
Outline• Introduction
– Concepts– Techniques
• Hands-on
History• Eclipse started out as proprietary technology
– Object Technology International (OTI)– IBM’s goals:
• Reduce incompatible environments• Increase reuse of common components
• Evolved from IBM VisualAge for Smalltalk™ and for Java™– Monolithic
http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F
History• The Eclipse open source project was announced in November 2001
by a group of companies that formed the initial Eclipse Consortium– Eclipse Foundation since 2004
• Commercial-friendly open source license– Wider audience and ecosystem
• Eclipse was designed from the ground up as an integration platform for development tools– Everything in Eclipse is a plug-in– Uses SWT to bind to local platform GUI– OSGi component model since 3.0– Annual Simultaneous Release (…, Luna, Mars, Neon, …)
Install• Simple:
– Download– Unzip– Run
• All configurations are file-based– Workspace folder
• Settings• Projects
– Project metadata files• .project• .classpath
CONCEPTS
Workbench• Eclipse’s main window
– Menus and toolbars– Views, editors, perspectives
View• A view is a window that lets you examine
something– Navigate a list or hierarchy of information– Display properties for the active editor
• Modifications made in a view are saved immediately
Editor• Editors are used to edit or browse a
resource– Rectangular area in the Workbench window – Visual presentation might be text or a diagram.– Editors are launched by clicking on a resource
in a view– Modifications made in an editor follow an open-
save-close lifecycle model• * indicates unsaved data
Perspective• A perspective is a set of views, editors, and toolbars,
along with their arrangement within the Workbench window.
• As you perform a task, you may rearrange windows, new views, and so on.– Saved under the current perspective.– Next time, switch to perspective– Within a window, each perspective may have a
different set of views but all perspectives share the same set of editors.
• Built-in Java or Debug perspectives
Java Project
Project properties
Project properties
Auto-complete• From the current context – project, class,
method, line, … what could complete it?– CTRL+space
Auto-build• Compilation is automatic in Eclipse
• Blessing– string s = “Eclipse”;
• Curse– String s = “Ecli
FACTORING TECHNIQUES
Factoring• Create the application domain• Create class
– Members– Methods
• Generate methods– Getters Setters– toString
Create
Create class
Source menu
Quick fix errors
Quick fix warnings
Implicit class creation– Write code as if the class already exists
• Write code referring to non-existing classes– Use quick-fix to generate class
But beware…• Quick-fix can become “quick-bug”• Example
– Try-catch and ignore• Worst solution
– Try-catch, print and continue• As if nothing has happened… but it did!
– Think it through:• Handle exception (try-catch)• Or let someone else do it (throws)
Testing• JUnit Class• JUnit View
REFACTORING TECHNIQUES
Refactoring• Refactoring is a process of software source code
transformation– Should be performed when the code is working and all
of its tests are passing– Does not involve rewriting or replacing large chunks of
code.– Gradual, evolutionary process, intended to “preserve
the knowledge embedded in the existing code.”• Examples
– Rename– Extract method
Refactor menu
Conclusions• Very useful tool• Can increase productivity
– Code formatting– Especially in refactoring
• But…– Does NOT replace critical thought and design– Can increase the production of all code
• Bugs included!
Shortcuts
Top 10
10. Shortcut to shortcuts• Ctrl+Shift+L to see a full list of the
currently available key bindings
9. Open file / type• Open file quickly without browsing:
Ctrl + Shift + R
• Open a type (class / interface):Ctrl + Shift + T
8. Show properties• Select project
Alt+Enter
• Select type/resourceAlt+Enter
7. Maximize editor• Maximizes current editor
Ctrl + M
• You can also double-click editor tab
6. Editor navigation• Jump to beginning / end of indentation. Twice to jump to beginning of line
– Home/End• Jump to beginning / jump to end of source
– Ctrl+Home/End• Jump one word to the left / one word to the right
– Ctrl+Arrow Right/Arrow Left• Jump to previous / jump to next method
– Ctrl+Shift+Arrow Down/Arrow Up• Jump to next / jump to previous compiler syntax warning or error
– Ctrl+./Ctrl+,• Jump to last location edited
– Ctrl+q• Jump to Line Number
– Ctrl+l • Hide/show line numbers
– Ctrl+F10 and select 'Show Line Numbers'
5. Outline view• Quickly go to class member
Ctrl + O
4. Code formatting• Ctrl + Shift + F for code formatting
• Ctrl + / for commenting, un commenting lines and blocks
3. Organize imports• Organize imports
Ctrl+Shift+O
• Go from:– import java.util.*
• To:– import java.util.Map;– import java.util.Iterator;
2. Print line• syso Ctrl+space• syse Ctrl+space
1. Guess Exception• throw new NPE Ctrl+space
– NullPointerException
• throw new IAE Ctrl+space– IllegalArgumentException