Pour chaque formulaire de recherche, il est possible de définir une liste d’action qu’un utilisateur peut exécuter.
Ces actions doivent être définies à travers la propriété actions
sur l’objet ComponentSearchPresenter
.
Par défaut ces actions ne sont visibles qu’à partir du moment où la recherche a été exécutée. Pour changer ce comportement, il est possible d’ajouter la propriété :
<property name="enableActionsIfDirty" value="false" />
Types d’action
Création de composant
Il est possible d’ajouter une action permettant aux utilisateurs de créer un composant à partir d’un formulaire de recherche. Ce type d’action permet ainsi de pré-indexer le composant à créer à partir des critères de la recherche effectuée.
Par exemple, si un utilisateur recherche un document de classe Facture
avec un tag statut
dont la valeur est réglé
alors l’action permettra de créer un document avec ces mêmes informations.
Changement d’écran
Les actions de type GoToPlaceActionPresenter
permettent de changer d’écran.
Activation
Comme toutes les actions, il est possible de définir quelle est la stratégie d’activation grâce à la propriété enablingStrategy
.
Plusieurs stratégies sont fournies nativement :
Quelque soit les résultats de la recherche (par défaut) :
AnyResultEnablingStrategy
<bean class="com.flower.docs.gui.client.search.action.AnyResultEnablingStrategy" />
Seulement si la recherche ne remonte aucun résultat :
NoResultEnablingStrategy
<bean class="com.flower.docs.gui.client.search.action.NoResultEnablingStrategy" />
Si l’utilisateur a sélectionné, en fonction d’un opérateur, un certain nombre de composants :
MultipleComponentsEnablingStrategy
Cette stratégie d’activation à deux propriétés :operator
: L’opérateur avec lequel évaluer le nombre de composants sélectionnés. Les opérateurs disponibles sontEQUALS_TO
,GREATER_THAN
,LESS_THAN
etDIFFERENT
.componentsCount
: Le nombre de composants
Exemple : Activation de l’action, si le nombre de composants sélectionnés est supérieur ou égal à 2
<bean class="com.flower.docs.gui.client.search.action.MultipleComponentsEnablingStrategy"> <property name="componentsCount" value="2"/> <property name="operator"> <value type="com.flower.docs.domain.search.Operators">GREATER_THAN</value> </property> </bean>