Eclipse workshop
Jan. 2014
• Miguel Pardal
– LEIC 2000
– Lecturer at Técnico Lisboa
– PhD Student
– http://web.tecnico.ulisboa.pt/miguel.pardal

– Eclipse user since 2005
– Conditional fan 
Goal
•
•
•
•

Learn the good
Avoid the bad
Become a better developer
Enjoy life!
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 (…, Indigo, Juno, Kepler, …)
Install
• 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, etc – what could complete this?
– CTRL+space
Auto-build
• Compilation is automatic in Eclipse
• Blessing
– Sting s = “Eclipse”;

• Curse
– String s = “Ecli
TECHNIQUES
Factoring
• Create the application domain
• Create class
– Members
– Methods

• Generate methods
– Getters Setters
– toString
Create
Create class
Source menu
Testing
• JUnit Class
• JUnit View
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
Quick fix errors
Quick fix warnings
Implicit class
– 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)
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 bugs!
Looking ahead…

• Questions?
– Concepts
– Techniques

Miguel.Pardal@tecnico.ulisboa.pt

Thank you

Obrigado
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/resource
Alt+Enter
7. Maximize editor
• Maximizes current editor
Ctrl + M
• You can also double-click editor tab
6. Editor navigation
•

Jump to beginning / end of indention. 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

Eclipse workshop presentation

  • 1.
  • 2.
    • Miguel Pardal –LEIC 2000 – Lecturer at Técnico Lisboa – PhD Student – http://web.tecnico.ulisboa.pt/miguel.pardal – Eclipse user since 2005 – Conditional fan 
  • 3.
    Goal • • • • Learn the good Avoidthe bad Become a better developer Enjoy life!
  • 4.
  • 5.
    History • Eclipse startedout 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
  • 6.
    History • The Eclipseopen 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 (…, Indigo, Juno, Kepler, …)
  • 7.
    Install • Download • Unzip •Run • All configurations are file-based – workspace folder • Settings • Projects – Project metadata files • .project • .classpath
  • 8.
  • 9.
    Workbench • Eclipse’s mainwindow – Menus and toolbars – Views, editors, perspectives
  • 10.
    View • A viewis 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.
  • 11.
    Editor • Editors areused 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
  • 13.
    Perspective • A perspectiveis 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
  • 16.
  • 17.
  • 18.
  • 19.
    Auto-complete • From thecurrent context – project, class, method, etc – what could complete this? – CTRL+space
  • 20.
    Auto-build • Compilation isautomatic in Eclipse • Blessing – Sting s = “Eclipse”; • Curse – String s = “Ecli
  • 21.
  • 22.
    Factoring • Create theapplication domain • Create class – Members – Methods • Generate methods – Getters Setters – toString
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
    Refactoring • Refactoring isa 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
  • 28.
  • 29.
  • 30.
  • 31.
    Implicit class – Writecode as if the class already exists • Write code referring to non-existing classes – Use quick-fix to generate class
  • 32.
    But beware… • Quick-fixcan 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)
  • 33.
    Conclusions • Very usefultool • Can increase productivity – Code formatting – Especially in refactoring • But… – Does NOT replace critical thought and design – Can increase the production… of bugs!
  • 34.
    Looking ahead… • Questions? –Concepts – Techniques Miguel.Pardal@tecnico.ulisboa.pt Thank you Obrigado
  • 35.
  • 36.
    10. Shortcut toshortcuts • Ctrl+Shift+L to see a full list of the currently available key bindings
  • 37.
    9. Open file/ type • Open file quickly without browsing: Ctrl + Shift + R • Open a type (class / interface): Ctrl + Shift + T
  • 38.
    8. Show properties •Select project Alt+Enter • Select type/resource Alt+Enter
  • 39.
    7. Maximize editor •Maximizes current editor Ctrl + M • You can also double-click editor tab
  • 40.
    6. Editor navigation • Jumpto beginning / end of indention. 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'
  • 41.
    5. Outline view •Quickly go to class member Ctrl + O
  • 42.
    4. Code formatting •Ctrl + Shift + F for code formatting • Ctrl + / for commenting, un commenting lines and blocks
  • 43.
    3. Organize imports •Organize imports Ctrl+Shift+O • Go from: – import java.util.* • To: – import java.util.Map; – import java.util.Iterator;
  • 44.
    2. Print line •syso Ctrl+space • syse Ctrl+space
  • 45.
    1. Guess Exception •throw new NPE Ctrl+space – NullPointerException • throw new IAE Ctrl+space – IllegalArgumentException