Datenquellen

Hauptklasse ExtensionBase

Innerhalb einer Extension erbt die Hauptklasse von Peakboard.ExtensionKit.ExtensionBase. Sie repräsentiert die Extension selbst – vor allem deren Metadaten – und registriert die angebotenen Datenquellen. Genau diese Klasse wird im Attribut Class der Extension.xml referenziert.

Erforderliche Konstruktoren

Damit die Extension vom Peakboard Designer korrekt geladen wird, muss die Hauptklasse die folgenden beiden öffentlichen Konstruktoren bereitstellen, die jeweils den passenden Basiskonstruktor aufrufen:

using Peakboard.ExtensionKit;

namespace HubSpot;

// Dieser Klassenname wird im Attribut 'Class' der Extension.xml referenziert
public class HubSpotExtension : ExtensionBase
{
    // 1. Parameterloser Konstruktor
    public HubSpotExtension()
        : base()
    {
    }

    // 2. Konstruktor mit IExtensionHost
    public HubSpotExtension(IExtensionHost host)
        : base(host)
    {
    }

    // ... Overrides (siehe unten)
}

Metadaten: GetDefinitionOverride

Die überschriebene Methode GetDefinitionOverride liefert die Metadaten der Extension als ExtensionDefinition zurück:

protected override ExtensionDefinition GetDefinitionOverride()
{
    return new ExtensionDefinition
    {
        ID = "HubSpot",   // muss über alle Extensions hinweg eindeutig sein
        Name = "HubSpot API Extension",
        Description = "Interface with the HubSpot API to get all tickets",
        Version = "1.0",
        Author = "Peakboard GmbH",
        Company = "Peakboard"
    };
}

Datenquellen registrieren: GetCustomListsOverride

Die Methode GetCustomListsOverride liefert Referenzen auf alle einzelnen Datenquellen (Custom Lists) der Extension zurück. In den meisten Fällen ist das genau eine, eine Extension kann aber auch mehrere Datenquellen bereitstellen:

protected override CustomListCollection GetCustomListsOverride()
{
    return
    [
        new HubSpotCustomList(),
    ];
}

Extension-Icon (optional)

Optional kannst du der Extension ein Icon geben, das der Peakboard Designer in seinem Menü anzeigt. Das Bild muss als Ressource in die Assembly eingebettet werden, und das Attribut [ExtensionIcon] an der Hauptklasse referenziert es über seinen voll qualifizierten Manifest-Ressourcennamen – der Standard-Namespace des Projekts, gefolgt vom Dateipfad, jeweils durch Punkte getrennt:

[ExtensionIcon("HubSpot.icon.png")]
public class HubSpotExtension : ExtensionBase
{
    // ... Konstruktoren und Overrides
}

Damit das funktioniert, bindest du das Bild in deiner .csproj als eingebettete Ressource ein:

<ItemGroup>
  <EmbeddedResource Include="icon.png" />
</ItemGroup>

In diesem Beispiel ist der Standard-Namespace HubSpot und icon.png liegt im Projektstamm, der Ressourcenname lautet also HubSpot.icon.png. Liegt das Bild in einem Unterordner (z.B. Resources/icon.png), wird der Ordner Teil des Ressourcennamens (HubSpot.Resources.icon.png).

Wir lernen von dir!

Hat dir dieser artikel geholfen?

Lass dich erleuchten!

Du benötigst weitere unterstützung?

Peakboard Youtube icon Zum YouTube Kanal

Unsere zahlreichen Videos für Einsteiger und Fortgeschrittene erklären dir genau, wie du dein Dashboard gestaltest.

Peakboard Templates icon Zu den Peakboard Templates

Lade dir unsere Templates für die verschiedensten Anwendungsfälle kostenlos herunter.

Peakboard icon Zu www.peakboard.com

Auf unserer Website findest du alle wichtigen Infos zu Peakboard sowie verschiedene Anwendungsfälle und Success Stories.