Eclipse Plugin Development

Eclipse Plugins are extension of third party functionalities made available within the Eclipse IDE. Standard plugins like CVS, ANT etc are already available within Eclipse. Eclipse SDK provides a Plugin Developer Environment (PDE) for ease of plugin development. Plugins can be created as perspectives or views

  1.1 View

View is a visual component which can be hooked into an eclipse workbench. To create a view within eclipse, a subclass of org.eclipse.ui.part.ViewPart should be created first. Then the view should be included into the workbench by editing the plugin.xml

<extension point=”org.eclipse.ui.views”>

<category name="Sample View" id="com.adhi.views">

</category>

<view name="Sample Tool View" icon="icons/sample.gif" category="com.adhi.views"
class="com.adhi.SampleToolView" id=”com.adhi.SampleToolView”>

</view>

</extension>

The following method need to be implemented for the ViewPart subclass

public class OrthogonalView extends ViewPart implements IStructuredContentProvider , ITableLabelProvider

{

public void createPartControl(Composite parent)

{

//place code to create all the controls of the view

//initialize all the GUI components with in the view

}

To populate the mrnus, create actions and include them into the MenuManager

Action exitAction = new Action()

{

public void run()

{

try

{

getSite().getPage().hideView(sampleToolsView);

}

catch(Throwable t)

{

t.printStackTrace();

}

}

};

exitAction.setText(“Exit”);

exitAction.setToolTipText(“Exit”);

IActionBars bars = getViewSite().getActionBars();

bars.getMenuManager().add(exitAction);

1.2  Perspective

Perspective is a collection of views, which organizes views in a particular way. To create a perspective, create
a class that implements IPerspectiveFactory and implement the method createInitialLayout.

public class OatsPerspective implements IPerspectiveFactory

{

public void createInitialLayout(IPageLayout layout)

{

defineActions(layout);

defineLayout(layout);

}

then include the perspective into the workbench by modifying the plugin.xml

<extension point="org.eclipse.ui.perspectives">

<perspective

name="Sample Tool"

class="com.adhi.SamplePerspective"

id="com.adhi.Tool">

</perspective>

</extension>

1.3  Dialogs

Application Dialogs can be created by extending org.eclipse.jface.dialogs.Dialog and implementing the method
createDialogArea.

protected Control createDialogArea(Composite parent)

{

Composite composite = (Composite)super.createDialogArea(parent);

createTableViewer(composite);

return composite;

}

The createDialogArea method is used for creating the Dialog GUI components apart from the OK and Cancel button. The method is called everytine the open method is called on the dialog

1.4  Preference Page

Preference for views and perspectives can be setup using the preference pages. Preference pages are created by
creating a subclass of PreferencePage and implementing its CreateContents methods

protected Control createContents(Composite parent)

{

Composite prefComposite = new Composite(parent, SWT.NONE);

Label urlLabel = new Label(prefComposite, SWT.LEFT);

urlLabel.setText(EclipseJIRAConstants.URL);

urlLabel.setBounds(10, 10, 75, 20);

urlText = new Text(prefComposite, SWT.BORDER);

urlText.setBounds(100, 10, 300, 20);

initializeValues();

return prefComposite;

}

Then the prefence page can be viewd in the workbench by modifyting the plugin.xml

<extension point="org.eclipse.ui.preferencePages">

<page

name="Sample"

class="com.adhi.pref.SamplePreferencePage"

id="com.adhi.pref.SamplePreferencePage">

</page>

</extension>