Eclipse/Using Eclipse

Purpose
This book is intended for Java Developers, but other developers may also find some sections useful.

The goal of this book to make the reader a better (Java) Programmer.

Intended Audience - (Java) developers, anyone interested in improving the way he/she programs.

Prerequisites - None

Getting Started
As described in Eclipse website, Eclipse is an IDE for everything and nothing in particular. Eclipse core is a universal IDE (a general purpose development environment).

Downloading Eclipse
Eclipse doesn't come with the JRE. It is advisable that you download the latest JRE (Java Runtime Environment) from the Javasoft web site first.

After you have downloaded and installed the JRE, you may then download the Eclipse IDE. Another version of Eclipse is the EasyEclipse project. Its interface is about the same as Eclipse. You can download it instead from [easyeclipse.org]

Installing Eclipse
Installing Eclipse just involves unzipping the downloaded file into a directory. After unzipping the Eclipse IDE is ready to run.

Windows
Eclipse can be run by executing the file startup.jar. If Java Environment (JAVA_HOME) variables are defined then Eclipse IDE will automatically detect the JRE and start running.

Linux
After downloading, open the file eclipse.

Getting Help
Types of help available with eclipse:
 * 1) Online documentation
 * 2) Context sensitive help
 * 3) Hover help
 * 4) Active Help

Eclipse Help can be accessed using external browser http://localhost: / . The values for these fields can be found in preferences.ini file. Eclipse uses a tomcat server for displaying help documentation.

Configuring Eclipse
(Use different workspaces for different JREs otherwise due to autobuild wrong .class files will get generated)
 * Tuning your JRE

Workspace
Resource (projects, folders, files)

.metadata folder contains information about the workspace.

Keep different workspaces for different development projects (or different customers)

Bookmarks - A bookmark acts as a link to a particular line in a file.

Tasks - A task is created against each java error. Tasks can also be created as an reminder for some activities to be performed. Task contains priority and completion status. Tasks can also work as bookmarks.

(See command line options)
 * Running Multiple Instances of Eclipse at the same time

Perspectives
You can create your own (customized) perspective using configurations.

Running Other Applications within Eclipse

 * File Association (External Programs)
 * Run (External Tools)

need a "how to"/tutorial for External Tools running a main class in one project while referencing a jar file elsewhere. ex. project DoesReallyNeatStuff creates output based on project SomeStuff. How does a project reference the other project using External Tools?

Java Development using Eclipse
syntax highlighting, code completion, code assist, tasks and views.
 * Writing Code - generate, edit and navigate Java code.
 * Debugging
 * Team Work
 * Improving Productivity - hooking into well defined plugin points
 * Using Eclipse Code

Introduction

 * Related Topics:** Java, Java Runtime Environment (JRE),SWT

Introduction to Eclipse
Eclipse Project is made available under the Eclipse Public License.

About Eclipse contains information about what is eclipse.org?

Eclipse Download

Eclipse Project FAQs

Eclipse Projects

Eclipse 3.0.1 Online Help

Eclipse Community

Eclipse Configuration Management
Preferences and Properties in the Eclipse Workbench UI

Eclipse Architecture
Notes on the Eclipse Plug-in Architecture

Eclipse Plug-In Programming

 * PDE Does Plug-ins
 * A First Look at Eclipse Plug-in development
 * Naming Conventions
 * Eclipse Platform API v3.2

Miscellaneous
Branding your application


 * Eclipse - tool integration platform - open source
 * Eclipse community - 1000s of developers - around 50 software companies
 * Eclipse vision - new paradigm for development tools - platform centric - not tool centric - towards Universal IDE
 * Eclipse Project - tools built independently - work together as integrated sets
 * Eclipse Plug-ins - seamless integration - your imagination is the limited - 100 active Open Source Projects and vendors.

Highlights
debugger - breakpoints, display value of variable, hot code replace support - change your code while in debug mode, preference settings - tailor according to your needs yourself,
 * Eclipse 3-in-1 - a Java development environment, a tool integration platform, and an open source community.
 * Editor -anticipates your next move - code assist, think faster that you write use spell checker, refactoring - iterative process of improving your code Object Oriented approach, scrapbook - experiment with expressions, search tools,

Java doc comments templates
 * General purpose - For both programming and non-programming development tasks

integrated support for Ant, JUnit

Basic Concepts

 * Developer's Toolset - (design) modelling tool, IDE, version control, word processor,
 * Artifacts - architecture diagrams, code and user documentation
 * Workspace is a directory where your projects are stored.
 * Workbench consists of views, perspectives and editors.
 * Views provide alternate way of navigation.
 * Editors are associated with the file types. External editors can also be used with editors. OLE based editors integrates well with Eclipse.
 * Perspectives are collection of views.

Eclipse Architecture

 * Eclipse Platform
 * SWT
 * JFace
 * GEF/GMF
 * Workspace
 * Workbench
 * Help
 * Team
 * Debug
 * Plug-In
 * Extension Points
 * Plug-In Development Environment (PDE)
 * Platform Runtime

WorkBench Terminology
predefined tags TODO, FIXME, XXX
 * Menu bar
 * Tool bar
 * Perspective
 * Fast View bar
 * Resource Navigator
 * Properties View
 * Message Area
 * Text editor
 * Outline view
 * Bookmarks view
 * Editor status area
 * Tasks view -
 * Stacked view
 * Help View

Standard Widget Toolkit (SWT)
The SWT is a collection of APIs that allow writing GUIs (Graphical User Interfaces). The APIs are focused on providing tools to allow "widgets" (graphical controls such as checkboxes, edit controls, etc.) to be displayed and manipulated.

Related Projects
EMF - Eclipse Modelling Framework EMF is a modeling framework and code generation facility for building tools and other applications based on a structured data model. EMF allows a model described using Annotated Java, XML or modeling tools to be generated as executable Java code. The generated code allows the model structure to be inspected, and the model data to be queried, updated and persisted to external storage.

Accelerators(Key Board Shortcuts)

 * 1) Ctrl + F6 - switching between various editors.

How To's

 * 1) Creating Ant Build File.
 * 2) Create a simple project.
 * 3) Create a new file with .xml as extension
 * 4) Open Ant editor
 * 5) Write the Ant script
 * 6) Run As External Tools


 * 1) Creating a user defined Task Tag
 * 2) Select Tools > Preference
 * 3) Select Task Tag
 * 4) Add new Task Tag