SourceForge.net Logo
Disable Menu
Realisierung des PlugIns
Bei der Realisierung des PlugIns haben wir uns an die Eclipse Richtlinie gehalten Funktionalität und Darstellung zu trennen.
Das PlugIn besteht somit aus zwei Projekten:
  • CAP - beinhaltet alles was mit der Darstellung zu tun hat (die einzelnen Fenster, Klassen zum zeichen der Diagramme, die Kommunikation unter den Fenstern).
  • CAP.core - beinhaltet die Funktionalitäten zum auswerten und berechnen der Kennzahlen von Packages.
Besonderheiten der Implementation
Dieses Kapitel soll dem Leser ein Verständnis darüber geben, wie das PlugIn funktioniert.
Dazu werden die wesentlichen Punkte die das PlugIn ausmachen beschrieben.
Die Darstellung des PlugIns
Die Darstellung des PlugIns wird in der PlugIn.xml beschrieben. Eine Datei die jedes Eclipse PlugIn besitzt. In der PlugIn.xml werden die Extension Points eines PlugIns beschrieben. Auserdem werden die zu einem PlugIn gehörenden Elemente (Perspektive, Fenster, Buttons, Listener...) beschrieben und angemeldet.
Anmeldung des Menüpunkts "Show CA"
Das PlugIn wird über einen Menüpunkt zu einem Projekt gestartet.

       Extension Point

 Das Menü das den Punkt "Show CA" beinhaltet wird von Eclipse bereitgestellt und zu unserem Zweck erweitert. Die Erweiterung muss in der PlugIn.XML eingetragen werden:

  <extension
    point=
"org.eclipse.ui.popupMenus">
    <objectContribution
        adaptable=
"false"
        objectClass="org.eclipse.jdt.core.IJavaProject"
        id="de.fh.reutlingen.cap">
        <action
            id=
"de.fh.reutlingen.cap.ui.actions.ShowCa"
            label="Show CA"
            enablesFor="1"
            class="de.fh.reutlingen.cap.ui.actions.ShowCa"/>
    </objectContribution>
</extension>

 Die Beschreibung enthält eine ID für den Menüpunkt. Es wird angeben wo der Menüpunkt auftauchen soll und welche Klasse bei einem Aufruf abgearbeitet wird: "de.fh.reutlingen.cap.ui.actions.ShowCa". Durch diese Klasse wird das PlugIn gestartet und der Aufbau der Perspektive angestoßen.
 

      

Anmeldung der Perspektive

<extension
        point=
"org.eclipse.ui.perspectives">
    <perspective
            name=
"CAP Perspective"
            class=
"de.fh.reutlingen.cap.ui.CapPerspectiveFactory"
            id="de.fh.reutlingen.cap.ui.CapPerspectiveFactory">
    </perspective>
</extension>

Die Perspektive bekommt ihren Namen und eine ID. Das Aussehen der Perspektive wird in der Klasse "de.fh.reutlingen.cap.ui.CapPerspectiveFactory" beschrieben.

      

Anmeldung der Elemente der Perspektive (Fenster)
<extension
    point=
"org.eclipse.ui.views">
    <view
        class=
"de.fh.reutlingen.cap.ui.views.protocol.ProtocolView"
        name="Protocol"
        id="de.fh.reutlingen.cap.ui.views.protocol.ProtocolView"/>
    <view
        class=
"de.fh.reutlingen.cap.ui.views.PackageExplorer"
        name="CAP Package Explorer"
        id="de.fh.reutlingen.cap.ui.views.PackageExplorer"/>
    ...
</extension>

 Als Beispiel wird das "Protokol" Fenster und der "Package Explorer" angemeldet. Sie bekommen einen Namen und eine ID. Die Fenster selbst werden in den Klassen "de.fh.reutlingen.cap.ui.views.protocol.ProtocolView" und "de.fh.reutlingen.cap.ui.views.PackageExplorer" beschrieben. In diesen Klassen taucht die ID als "public static final String" auf.

Anmeldung der Listener
<listener
class="de.fh.reutlingen.cap.ui.views.EfferentDeps$MyDisplayChangedListener"
id="de.fh.reutlingen.cap.ui.views.EfferentDepsModel$MyDisplayChangedListener"/>