Java | .Net |
---|---|
void processMouseEvent(IMouseActionInfo action) | void ProcessMouseEvent(IMouseActionInfo action) |
void processSingleMouseEvent(IMouseActionInfo action) | void ProcessPreDownMouseEvent(IMouseActionInfo action) |
void processHoverMouseEvent(IMouseActionInfo action) | void ProcessPreUpMouseEvent(IMouseActionInfo action) |
void ProcessHoverMouseEvent(IMouseActionInfo action) |
API processxxxMouseEvent()
De nombreuses API processxxxMouseEvent() sont disponibles mais l'API principale utilisée pour un événement de souris est processMouseEvent(). Vous pouvez étendre les autres API processxxxMouseEvent() selon vos besoins. Les implémentations Java et .Net de l'API processMouseEvent() ci-dessous expliquent comment les autres API processxxxMouseEvent() sont liées.
L'exemple suivante illustre l'implémentation Java de processMouseEvent() :
public void processMouseEvent(IMouseActionInfo action) { int eventState = action.getEventState(); if ( eventState == IMouseActionInfo.PRE_DOWN || eventState == IMouseActionInfo.PRE_UP || eventState == IMouseActionInfo.POST_UP ) processSingleMouseEvent(action); else if ( eventState == IMouseActionInfo.HOVER ) processHoverMouseEvent(action); }
L'exemple suivant illustre l'implémentation .Net de processMouseEvent() :
public override void ProcessMouseEvent(IMouseActionInfo action) { switch (action.GetEventState()) { case MouseActionStates.PRE_DOWN: if (action.GetClickCount() == 1) ProcessPreDownMouseEvent(action); break; case MouseActionStates.PRE_UP: // en cas de clic, et non de glissement, il n'y a rien à ajouter (il n'est pas nécessaire de définir processPreUpMouseEvent) if (action.GetClickCount() != 1 || action.IsDrag()) ProcessPreUpMouseEvent(action); break; case MouseActionStates.HOVER: ProcessHoverMouseEvent(action); break; } } }
Interface IMouseActionInfo
L'API processMouseEvent() obtient les détails MouseEvent, tels qu'EventState, les coordonnées d'écran et le nombre d'événements, et les utilise pour déterminer la méthode enregistrée. La méthode setMethodSpecification() d'IMouseActionInfo permet de renvoyer un objet MethodSpecification() comme résultat de l'API processMouseEvent().
Classe MethodSpecification
L'objet MethodSpecification représente la méthode en cours d'enregistrement pour un événement particulier. Il est initialisé lorsque le nom de la méthode et le paramètre sont associés à l'objet IMouseActionInfo transmis à processMouseEvent(). L'enregistreur choisit cette méthode et procède à l'enregistrement pour une action utilisateur donnée.
L'exemple suivant illustre l'extension de processMouseEvent() dans Java :
import com.rational.test.ft.domain.IMouseActionInfo; import com.rational.test.ft.sys.MethodSpecification; . . public void processSingleMouseEvent(IMouseActionInfo action) { String method = null; int clicks = action.getClickCount(); if (clicks == 1) // en général, si le nombre de clics est égal à 1, la méthode est click ; nous avons remplacé cette méthode par doubleClick method = "doubleClick"; //method = "click"; else if (clicks == 2) // en général, si le nombre de clics est égal à 2, la méthode est doubleClick ; nous avons remplacé cette méthode par click method = "click"; // method = "doubleClick"; else method = "nClick"; // La méthode à enregistrer est représentée par cette classe dans RFT MethodSpecification methodSpec = MethodSpecification.proxyMethod(this, method,null); // La méthode pour l'action utilisateur est définie ici action.setActionMethodSpecification(methodSpec); }