Search the FirstSpirit Knowledge Base
Hallo zusammen,
anhand der Anleitung zur Entwicklung einer "Launching Application" (FirstSpirit Online Documentation - Launching Applications (FirstSpirit Start Page)) habe ich eine kleine Erweiterung geschrieben und in dem aktuellen FS Release installiert. Die Komponente kann ich problemlos zur fsroot-Webapp (Startseite) hinzufügen, jedoch taucht die Komponente nicht im Reiter "Startseite" der AdminConsole auf.
Muss die Klasse, die das de.espirit.firstspirit.server.application.ApplicationPlugin implementiert, gesondert in der module.xml registriert werden, damit das Plugin im Reiter "Startseite" ausgewählt werden kann?
Gruß,
Oliver Degener
Hi Oliver,
ich denke der Grund ist, dass die Methode getImageFromIcon nicht die richtige für diese Anwendung ist, da wird ein Swing-Icon zurückgegeben, das wird für eine WebApp bestimmt nicht verwendet. Ich denke du brauchst getImageUrl(String url), dann kannst du dein Bild als Ressource in die WebApp konfigurieren - so wird das Bild ausgeliefert und ist über eine Url abfragbar, die du dort eintragen kannst.
Probier das mal aus und gib uns Rückmeldung ob das geklappt hat.
Grüße,
Hannes
Hallo Oliver,
du müsstest deine Klasse, die das ApplicationPlugin implementiert, noch als Public-Komponente in der module.xml angeben. Zusätzlich musst du sicherstellen, dass die Web-App (web.xml und Web-Ressourcen, welche die notwendigen Klassen enthält) angegeben wird.
Grüße
Philipp Börsteken
Hallo Philipp,
vielen Dank, mithilfe der Public-Komponente konnte ich das ApplicationPlugin zur Startseite hinzufügen.
Allerdings stehe ich nun vor dem nächsten Problem:
Ich würde das Icon gerne direkt aus der JAR ausliefern, sprich ein javax.swing.ImageIcon laden und mit dem ImageSpecialist (getImageFromIcon) in ein FS-Image vom Typ IconBasedImage umwandeln und im getIcon-Aufruf des ApplicationPlugins zurückgeben.
Per Logging kann ich nachvollziehen, dass das ImageIcon korrekt geladen wird, im HTML der Startseite wird aber leider nichts ausgegeben:
<div class="icon">
<img src="" alt="" />
</div>
Kann es sein, dass ein ApplicationPlugin ein FS-Image einer bestimmten Ausprägung (z.B. UrlBasedImage / MediaBasedImage) zurückgeben muss? Im Interface ist eine solche Einschränkung nicht zu erkennen, da mit Icon<?> gearbeitet wird.
Viele Grüße,
Oliver Degener
Hi Oliver,
ich denke der Grund ist, dass die Methode getImageFromIcon nicht die richtige für diese Anwendung ist, da wird ein Swing-Icon zurückgegeben, das wird für eine WebApp bestimmt nicht verwendet. Ich denke du brauchst getImageUrl(String url), dann kannst du dein Bild als Ressource in die WebApp konfigurieren - so wird das Bild ausgeliefert und ist über eine Url abfragbar, die du dort eintragen kannst.
Probier das mal aus und gib uns Rückmeldung ob das geklappt hat.
Grüße,
Hannes
Moin Hannes,
das stimmt, mit "getImageUrl(String url)" kann ein Bild, das als Ressource in der WebApp liegt, geladen werden - danke!
Dann suggeriert das ApplicationPlugin-Interface allerdings mehr Freiheiten, als tatsächlich zur Verfügung stehen. Hier wäre es in meinen Augen schöner, wenn das Interface die korrekte Verwendung erzwingen würde. Alternativ sollte es sicherlich auch möglich sein, den ApplicationPluginsTag dahingehend zu erweitern, dass die anderen Icon-Typen (MediaBasedImage / IconBasedImage) als Inline-Base64-src ausgegeben werden, sodass alle 3 Typen verwendet werden können.
Viele Grüße,
Oliver