Création d'une classe de bouton personnalisé

Vous pouvez créer des classes de boutons personnalisés qui ajoutent dynamiquement des actions personnalisées à l'interface de création. Les boutons personnalisés vous permettent d'intégrer des outils tiers dans l'interface de création sans utiliser d'élément personnalisé. Vous pouvez ainsi utiliser un bouton personnalisé pour ajouter le profilage automatique d'un objet de contenu, ou bien pour ajouter ou modifier des éléments sur les formulaires d'objets.

Pourquoi et quand exécuter cette tâche

Chaque extension ajoute un bouton unique facultatif au mode lecture ou édition d'un formulaire d'objet. Lorsqu'elle est démarrée, l'extension peut effectuer n'importe quelle modification de données sur l'objet. Même en mode lecture, l'extension peut modifier l'état d'un objet et effectuer des opérations d'enregistrement. Pour créer un plug-in de bouton personnalisé, vous devez créer une classe de bouton personnalisé puis l'enregistrer en la déployant sur le serveur.

Procédure

  1. Créez une classe java qui implémente l'interface com.ibm.workplace.wcm.api.extensions.authoring.AuthoringAction. Cette classe peut implémenter les méthodes suivantes :
    public boolean isValidForForm(final FormContext formContext) {}
    Cette méthode indique si le bouton doit être inclus dans la barre de boutons ou ignoré pour l'objet ouvert. Lorsque cette méthode s'exécute, toute modification non validée apportée au document contenu dans le contexte du formulaire est annulée. Cette méthode démarre chaque fois que la page est affichée afin de limiter l'impact sur les performances. Utilisez le formulaire de création cible pour formContext.
    public int ordinal() {}
    Cette méthode renvoie un nombre qui détermine l'emplacement du bouton par rapport aux boutons créés par d'autres classes AuthoringAction. Le bouton dont le nombre est le plus bas est présenté en premier.

    Consultez la documentation Javadoc pour plus d'informations. The Javadoc files for Web Content Manager are in the PortalServer_root/doc/Javadoc/spi_docs/com/ibm/workplace/wcm directory.

  2. Implémentez la méthode ActionResult execute(final FormContext formContext) qui démarre lorsque l'utilisateur clique sur le bouton.

    Lorsque cette méthode s'exécute, toute modification non validée apportée au document contenu dans le contexte du formulaire est annulée. Use the target authoring form for formContext.

  3. Un fichier plugin.xml est nécessaire, que le déploiement soit effectué via un fichier WAR ou EAR ou JAR. Si le déploiement est effectué à l'aide d'une application dans un fichier WAR ou EAR, vous devez inclure le fichier plugin.xml dans le dossier "WEB-INF" de l'application. Si vous utilisez un fichier JAR, ajoutez le fichier plugin.xml à la racine de ce fichier JAR.
    <?xml version="1.0" encoding="UTF-8"?>
    <plugin id="com.ibm.workplace.wcm.sample.authoringaction"
            name="Sample Authoring Action Extension"
            version="1.0.0"
            provider-name="IBM">        
      <extension
         point="com.ibm.workplace.wcm.api.AuthoringAction
         id="SampleAuthoringAction" >
         <provider class="com.ibm.workplace.wcm.sample.MyAuthoringAction"/>
      </extension> 
    </plugin>

Que faire ensuite

  • L'ID de chaque plug-in doit être unique.
  • Vous devez remplacer l'ID de plug-in spécifié dans cet exemple, com.ibm.workplace.wcm.sample.authoringaction, par un ID différent pour chaque extension que vous créez.
  • Chaque extension AuthoringAction est représentée par une balise <extension></extension>.
  • La valeur de l'attribut de point doit être com.ibm.workplace.wcm.api.AuthoringAction.
  • Spécifiez l'ID de votre choix.
  • Spécifiez la classe de fournisseur pour votre extension AuthoringAction.
Naming conventions :
Si vous créez une nouvelle application de plug-in associée aux mêmes nom et ID qu'un plug-in existant, le nouveau plug-in risque de remplacer le premier. Lorsque vous créez des applications de plug-in, vérifiez que les éléments suivants sont uniques sur votre système :
  • l'ID de plug-in, le nom du plug-in et l'extension du plug-in du fichier plugin.xml,
  • Le nom de classe qualifié complet et le chemin de toutes les classes dans l'application.
  • le chemin d'accès aux fichiers de l'application.