Jump to: navigation, search

Difference between revisions of "Eclipse IDE for Education/New Developers"

(Adding additional information to help new developers to the IDE4EDU project.)
(Introduction)
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
The following is a collection of useful links, knowledge, and help for bringing new developers up to speed with the Eclipse framework and the Eclipse IDE 4 Education code base.
 
The following is a collection of useful links, knowledge, and help for bringing new developers up to speed with the Eclipse framework and the Eclipse IDE 4 Education code base.
 
  
 
== Eclipse Framework ==
 
== Eclipse Framework ==
Line 11: Line 10:
 
* The team project set can be used to download the source code.
 
* The team project set can be used to download the source code.
 
* Eclipse uses BugZilla to track bugs; Please refer to [http://wiki.eclipse.org/Eclipse_IDE_for_Education#Development BugZilla information] for more details.
 
* Eclipse uses BugZilla to track bugs; Please refer to [http://wiki.eclipse.org/Eclipse_IDE_for_Education#Development BugZilla information] for more details.
 
  
 
=== Recommended Setup ===
 
=== Recommended Setup ===
 
* Join the [http://dev.eclipse.org/mailman/listinfo/ide4edu-dev mailing list] and come say Hi!
 
* Join the [http://dev.eclipse.org/mailman/listinfo/ide4edu-dev mailing list] and come say Hi!
 
* If you would like to receive email updates directly from the BugZilla as they are posted, login to BugZilla and go to the [https://bugs.eclipse.org/bugs/userprefs.cgi?tab=email Email Preferences tab]. Then add the ide4edu-inbox@eclipse.org "user" to your watch list. Anytime an update is made on a bug from the IDE4EDU BugZilla, you will be automatically notified via email about it.
 
* If you would like to receive email updates directly from the BugZilla as they are posted, login to BugZilla and go to the [https://bugs.eclipse.org/bugs/userprefs.cgi?tab=email Email Preferences tab]. Then add the ide4edu-inbox@eclipse.org "user" to your watch list. Anytime an update is made on a bug from the IDE4EDU BugZilla, you will be automatically notified via email about it.
 
  
 
=== Framework Organization ===
 
=== Framework Organization ===
 
Developing with the Eclipse framework will take some time to learn, but it can be very rewarding!
 
Developing with the Eclipse framework will take some time to learn, but it can be very rewarding!
 
  
 
Let us start by clarifying whats the difference is between an RCP Application and a plugin:
 
Let us start by clarifying whats the difference is between an RCP Application and a plugin:
Line 27: Line 23:
  
 
A good recommendation would be to go through some tutorials, such as the ones linked below, to get a good idea of how Eclipse plugins and RCP applications interact with each other.
 
A good recommendation would be to go through some tutorials, such as the ones linked below, to get a good idea of how Eclipse plugins and RCP applications interact with each other.
 
  
 
Some additional framework information:
 
Some additional framework information:
 
* The code base was originally forked from internal code. It is preferred that we try to avoid using internal packages as much as possible (ideally we would eliminate all internal package references, but that hasn't happened just yet). You will notice these, as Eclipse flags them as a warning, but they also have "internal" in the package location / name. Since IDE4EDU shares a lot of functionality with already made internal code, this can also go the other way and can give hints on solving our problems.
 
* The code base was originally forked from internal code. It is preferred that we try to avoid using internal packages as much as possible (ideally we would eliminate all internal package references, but that hasn't happened just yet). You will notice these, as Eclipse flags them as a warning, but they also have "internal" in the package location / name. Since IDE4EDU shares a lot of functionality with already made internal code, this can also go the other way and can give hints on solving our problems.
 
* A couple useful classes for retrieving various details (read the javadoc, they allow you create and get references to various areas of Eclipse / the current plugin) - PlatformUI - HandlerUtil - JavaCore.
 
* A couple useful classes for retrieving various details (read the javadoc, they allow you create and get references to various areas of Eclipse / the current plugin) - PlatformUI - HandlerUtil - JavaCore.
 
  
 
== Useful Tidbits ==
 
== Useful Tidbits ==
Line 44: Line 38:
  
 
If your going to be making or working with Commands, Command handlers, Actions, (aka anything within the Command framework), here is a list of [http://wiki.eclipse.org/Command_Core_Expressions available command expressions] that can be used within the plugin.xml for adding logic to handle various situations.
 
If your going to be making or working with Commands, Command handlers, Actions, (aka anything within the Command framework), here is a list of [http://wiki.eclipse.org/Command_Core_Expressions available command expressions] that can be used within the plugin.xml for adding logic to handle various situations.
 
  
 
== Useful Eclipse Shortcuts ==
 
== Useful Eclipse Shortcuts ==

Latest revision as of 10:57, 22 June 2010

Introduction

So you'd like to start developing for Eclipse and Eclipse IDE 4 Education?

The following is a collection of useful links, knowledge, and help for bringing new developers up to speed with the Eclipse framework and the Eclipse IDE 4 Education code base.

Eclipse Framework

Setup

Recommended Setup

  • Join the mailing list and come say Hi!
  • If you would like to receive email updates directly from the BugZilla as they are posted, login to BugZilla and go to the Email Preferences tab. Then add the ide4edu-inbox@eclipse.org "user" to your watch list. Anytime an update is made on a bug from the IDE4EDU BugZilla, you will be automatically notified via email about it.

Framework Organization

Developing with the Eclipse framework will take some time to learn, but it can be very rewarding!

Let us start by clarifying whats the difference is between an RCP Application and a plugin:

An RCP application is built with a set of plugins, and couple of them will be ours (org.eclipse.ide4edu.*). The simplest explaination of an RCP application is that its a compiled, standalone Eclipse program, such as the one that can be found here. Development on this project will involve working with the org.eclipse.ide4edu.* plugins. Each plugin has a plugin.xml and this is the critical file that defines what that particular plugin is meant to do, and helps brings RCP applications together. Forget everything you know about creating stand-alone applications in Java... Majority of the Eclipse RCP development will require defining and customizing plugin "extensions" with the help of the plugin.xml file. You can do this by modifying the XML directly or use Eclipse's built-in GUI by simply opening the plugin.xml file you want to modify. You will notice a bunch of tabs at the bottom of the editor - pay the most attention to the "Extensions" tab, as that is where the RCP magic occurs. If you're planning on adding or customizing something within the RCP UI, be it a new menu item, a wizard, a completely new perspective, tutorials, etc, its all done by defining and customizing the appropriate extension. The plugin org.eclipse.ide4edu.javalite.ui is a good starting point as we have defined and implemented many of these already.

A good recommendation would be to go through some tutorials, such as the ones linked below, to get a good idea of how Eclipse plugins and RCP applications interact with each other.

Some additional framework information:

  • The code base was originally forked from internal code. It is preferred that we try to avoid using internal packages as much as possible (ideally we would eliminate all internal package references, but that hasn't happened just yet). You will notice these, as Eclipse flags them as a warning, but they also have "internal" in the package location / name. Since IDE4EDU shares a lot of functionality with already made internal code, this can also go the other way and can give hints on solving our problems.
  • A couple useful classes for retrieving various details (read the javadoc, they allow you create and get references to various areas of Eclipse / the current plugin) - PlatformUI - HandlerUtil - JavaCore.

Useful Tidbits

Looking for a quick overview / How-To for various tasks related to Eclipse RCP development? This link Eclipse RCP How-To gives a short and sweet version of how to do a large variety of tasks within the Eclipse framework.

A good first step before trying to contribute is to try to get a good mental model of how Eclipse Plugins and RCP applications are meant to work. A good tutorial that walks you through the basics and gives a good introduction to Extensions and the important plugin.xml file can be found here: Lars Vogels Eclipse RCP Tutorial

There is a large database of various Eclipse tutorials found here: Eclipse Tutorials

Here is a page on general Eclipse UI guidelines: UI Guidelines

If your going to be making or working with Commands, Command handlers, Actions, (aka anything within the Command framework), here is a list of available command expressions that can be used within the plugin.xml for adding logic to handle various situations.

Useful Eclipse Shortcuts

  • Plugin Spy – alt + shift + F2 (Use to lookup an element's plugin details -> Click on a menu item / anything to bring ID it)
  • Find Source - F3 (Highlight the element you want to look up first)
  • Find References - ctrl + shift + G (Highlight the element you want to look up first)
  • Open file by name – ctrl + shift + T
  • Delete whole line(s) without selecting all text – ctrl + d
  • Comment out whole line(s) – ctrl + / (Note: can be used to undo commented line too)
  • Organize imports – ctrl + shift + O
  • Format source code – ctrl + shift + F