Création d'un panneau personnalisé de configuration d'effectivité du service
Vous pouvez personnaliser les champs d'un attribut donné d'un objet d'effectivité du service qui apparaissent dans les boîtes de dialogue Ajouter/Modifier l'effectivité du service, ainsi que dans le filtre d'effectivité du service permettant d'en attribuer les valeurs.
Cette section décrit comment concevoir un panneau de configuration avec les champs indiqués ci-dessous. Le panneau correspond à la zone située sous les champs Type et Contexte.
Prenez connaissance des remarques suivantes :
1. Une classe Java permettant d'étendre ServiceEffectivityConfigType.
Veuillez consulter la classe suivante à titre d'exemple (ignorez le saut de ligne) :
codebase\com\ptc\arbortext\windchill\serviceEffectivityFilter\client\ui
\renderers\configTypes\SerialNumberDateConfigType.class
2. La classe utilise des schémas et des composants GXT pour les champs souhaités.
3. L'attribut et la classe personnalisée ServiceEffectivityConfigType sont enregistrés dans le fichier ServiceEffectivityConfig.xml.
Pour en savoir plus, consultez la section Personnalisation de l'effectivité du service.
Récapitulatif des méthodes
Les méthodes obligatoires ci-après sont héritées de ServiceEffectivtityConfigType et doivent être écrasées ou implémentées. Les sections suivantes présentent des détails supplémentaires.
renderConfigType()
Cette méthode crée le panneau, ainsi que les champs qu'il comporte.
Dans l'exemple, les entrées suivantes configurent les champs :
Le panneau de base est représenté par une entrée ContentPanel.
L'entrée ContentPanel inclut les entrées NoLegendFieldSet concernant les zones Numéro de série et date et Résumé.
L'entrée FieldSet concernant la zone Numéro de série et date comporte une entrée HorizontalPanel permettant de contenir les champs Numéro de série et une autre permettant de contenir les champs Date.
L'entrée HorizontalPanel concernant les champs Numéro de série comporte des entrées Radio et TextField permettant de représenter les deux types d'information pouvant être saisis.
L'entrée HorizontalPanel concernant les champs Date comporte des entrées DateTimePicker.
L'entrée FieldSet concernant le texte affiché dans le champ Résumé est mise à jour lorsque l'une des autres valeurs de champ est modifiée.
Des auditeurs facultatifs sont ajoutés aux champs à l'aide de cette méthode afin de contrôler la validité de la saisie et l'activation ou la désactivation des champs et des boutons.
resetConfigType()
Cette méthode efface et réinitialise tous les champs. Elle est utilisée lors des actions suivantes :
ajout des critères au tableau A appliquer de l'onglet du filtre d'effectivité du service ;
clic sur le bouton Appliquer lors de l'ajout de l'effectivité du service ;
suppression du contexte si celui-ci est obligatoire.
Dans l'exemple, cette méthode désactive également tous les champs afin de s'assurer que le contexte est sélectionné avant de poursuivre. Le contexte est obligatoire pour le type d'effectivité du service.
getLocalizedLabel()
Cette méthode renvoie la chaîne de ressource localisée pour le type d'effectivité du service.
Pour utiliser le nom affiché de l'attribut enregistré dans l'utilitaire Gestion d'attributs et de types, renvoie getDisplayName(). Il a été défini avec cette valeur dans la superclasse.
populateConfigType(JSONObject jsonObject)
Lors de la création de critères de filtrage ou d'un objet ServiceEffectivity, les valeurs des champs sont converties en JSONObject. Cette méthode prend l'JSONObject, lit les valeurs des champs et renseigne les champs de l'interface utilisateur avec ces valeurs.
Elle est utilisée lors des actions suivantes :
sélection d'une ligne dans le tableau A appliquer dans le filtre ;
nouvelle ouverture de l'onglet du filtre lorsqu'un filtre est appliqué ;
application d'un filtre enregistré lorsque l'onglet est ouvert ;
modification d'un objet existant ServiceEffectivity.
L'JSONObject peut présenter n'importe quel attribut ou valeur, mais nécessite une délégation de filtre personnalisée permettant de les lire et de les gérer.
isContextMandatory()
Ce paramètre indique si le champ de contexte est obligatoire pour le type d'effectivité du service sélectionné. Il peut être utilisé pour contrôler que les champs sont désactivés si le paramètre n'est pas défini et que les champs sont effacés si le contexte est supprimé.
addDetailSummary()
Ce paramètre n'est utilisé que si le groupe de champs Résumé a été créé. Il met à jour le texte du champ. Si le champ Résumé n'est pas obligatoire, il n'est pas nécessaire d'implémenter cette méthode.
initializeConfigType(JSONObject innerObject)
En raison de l'JSONObject représentant les champs d'effectivité du service, cette méthode est utilisée dans l'onglet du filtre pour initialiser les modèles du tableau A appliquer lorsque l'onglet est renseigné.
addConfigType()
Dans l'onglet du filtre d'Effectivité du service, cette méthode crée le modèle et l'ajoute au tableau A appliquer.
Le libellé détail représente la chaîne qui s'affiche dans la colonne Valeur du tableau.
Par exemple :
JSONObject latestJSON = getJsonFromFields();
String detail = valueText.getRawValue();
SETabInfoModel cm = new SETabInfoModel(getLocalizedLabel(),
ServiceEffectivityHelper.
getEffContextAsStringFromWidget(getEffContext(), true), detail, latestJSON,
getConfigTypeId());
return cm;
getJsonFromFields()
Cette méthode crée un JSONObject à partir des valeurs définies dans les champs. Cet objet diffère pour chaque type d'effectivité du service et est géré par la délégation de filtre.
getAllowAddingConfigType()
Cette méthode renvoie la propriété booléenne allowAddingConfigType, permettant d'activer ou de désactiver des boutons sur les formulaires si les champs ne sont pas validés.
Est-ce que cela a été utile ?