Aller au contenu principal

Metadaten Tab per API ansprechen

Commentaires

7 commentaires

  • Zendesk API User
    Author: StefanSchulz - 3/9/2016 14:29

    Hallo Patricia,

    es gibt seit Version 5.0 eine OpenElementMetaFormOperation.

    Ist es so etwas, das du suchst?

    Beste Grüße

    Stefan

    0
  • Zendesk API User
    Author: pstute - 3/9/2016 14:42

    Hallo Stefan,

    das sieht sehr danach aus, allerdings liefert der Aufruf getOperation(...) immer null zurück und es folgt eine NullPointer.

    OperationAgent operationAgent = baseContext.requireSpecialist(OperationAgent.TYPE);
    baseContext.logInfo("operationAgent " + operationAgent);
    OpenElementMetaFormOperation operation = operationAgent.getOperation(OpenElementMetaFormOperation.TYPE);

    operation.perform(media);

    Der operationAgent ist nicht null, nur der Aufruf von getOperation liefert null. Benötige ich einen anderen Context?

    Ich hole mir das eingefügte Element momentan durch

    ClientUtil.select(media).execute();

    da ich bereits hier das Problem mit dem null für DisplayElementOperation hatte.

    Viele Grüße,

    Patricia

    0
  • Zendesk API User
    Author: StefanSchulz - 3/9/2016 15:02

    Hi Patricia,

    du hast Recht. Leider ist der Kontext an dieser Stelle nicht ausreichend und verfügt über keinerlei UI-Informationen. Potentiell wird der Hook ja auch Server-seitig ausgeführt.

    So wird es einigermaßen kompliziert. Du könntest beispielsweise ein JavaClientPermanentPlugin erstellen, dass einen ClientService registriert,der die gewünschte Aufgabe erledigen kann. Den Service kannst du dann über den ServicesBroker des baseContext auffinden (im SiteArchitect-Kontext) und nutzen.

    Beste Grüße

    Stefan

    0
  • Zendesk API User
    Author: pstute - 3/9/2016 15:10

    Hallo Stefan,

    danke für die Rückmeldung. Da es momentan nur ein "nice to have" für die Redakteure ist, werde ich den Ansatz im Hinterkopf behalten.

    Viele Grüße,

    Patricia

    0
  • Zendesk API User
    Author: pstute - 3/10/2016 8:39

    Hallo Stefan,

    es hat sich gerade vom "nice to have" zu einen "must have" aufgeschwungen.

    Ich hatte eben mit folgendem Aufbau versucht das Plugin zu implementieren:

    public class SelectMetadataTabPlugin implements JavaClientPermanentPlugin{

        @Override
        public void setUp(BaseContext baseContext) {

            BrokerAgent brokerAgent = baseContext.requireSpecialist(BrokerAgent.TYPE);
            SpecialistsBroker specialistsBroker = brokerAgent.getBroker("Mithras Energy");

            ClientServiceRegistryAgent clientServiceRegistryAgent = baseContext.requireSpecialist(ClientServiceRegistryAgent.TYPE);
            OpenElementMetaFormOperation operation = new OpenElementMetaFormOperationImpl(specialistsBroker);
            clientServiceRegistryAgent.registerClientService(OpenElementMetaFormOperation.class, operation);
        }

        @Override
        public void tearDown() {

        }

    }

    Bei OpenElementMetaFormOperation operation = new OpenElementMetaFormOperationImpl(specialistsBroker); bekomme ich eine NullPointerException. Irgendetwas mache ich hier falsch :/

    Viele Grüße,

    Patricia

    0
  • Zendesk API User
    Author: StefanSchulz - 3/10/2016 9:06

    Hi Patricia,

    die Operation bekommst du über den OperationAgent, du kannst/musst die nicht selbst erzeugen. Also einfach über den baseContext die Operation holen und nutzen.

    Den Service musst du schon selber schreiben, das kann eine beliebige Klasse sein.

    Beispiele zum PermanentPlugin und zu ClientServices findest du in unserer Dokumentation im Abschnitt Permanent-Plug-Ins: Code Example. In dem Beispiel-Code-Paket, das dort verlinkt ist, findest du auch eines für einen ClientService.

    Beste Grüße,

    Stefan

    0
  • Zendesk API User
    Author: pstute - 3/17/2016 8:02

    Danke Stefan für den Hinweis. Hat nun geklappt.

    Viele Grüße,

    Patricia

    0

Vous devez vous connecter pour laisser un commentaire.