The plug-in class

So far, we've been looking at the different extensions that are provided by the readme tool. Let's look at the general definition of the readme tool plug-in.

 

 

Plug-in definition

The readme tool plug-in is defined at the top of the plugin.xml file.

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin
   id="org.eclipse.ui.examples.readmetool"
   name="%Plugin.name"
   version="2.1.0"
   provider-name="%Plugin.providerName"
   class="org.eclipse.ui.examples.readmetool.ReadmePlugin">

   <runtime>
      <library name="readmetool.jar"/>
   </runtime>
   <requires>
      <import plugin="org.eclipse.ui"/>
      <import plugin="org.eclipse.core.resources"/>
      <import plugin="org.eclipse.core.runtime.compatibility"/>
      <import plugin="org.eclipse.ui.views"/>
      <import plugin="org.eclipse.ui.ide"/>
      <import plugin="org.eclipse.jface.text"/>
      <import plugin="org.eclipse.text"/>
      <import plugin="org.eclipse.ui.workbench.texteditor"/>
      <import plugin="org.eclipse.ui.editors"/>
   </requires>
   ...

The plug-in definition includes the name, id, version, and provider name of the plug-in. We saw most of these parameters before in our hello world plug-in. The readme tool also defines a specialized plug-in class, ReadmePlugin.

The name of the jar file is also provided. File names specified in a plugin.xml file are relative to the plug-in's directory, so the readme tool's jar file should be located directly in the plug-in's directory.

The requires element informs the platform of the readme tool's dependencies. The workbench UI plug-ins are listed as required plug-ins, along with the various core, jface, and text plug-ins.

 

 

AbstractUIPlugin

The ReadmePlugin class represents the readme tool plug-in and manages the life cycle of the plug-in.  As we saw in the Hello World example, you don't have to specify a plug-in class.  The platform will provide one for you.  In this case, our plug-in needs to initialize UI related data when it starts up.  The platform class AbstractUIPlugin provides a structure for managing UI resources and is extended by ReadmePlugin.

AbstractUIPlugin uses the generic startup and shutdown methods to manage images, dialog settings, and a preference store during the lifetime of the plug-in.  We'll look at the specifics of the ReadmePlugin class when we work with dialogs and preferences.