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()
Hay varias API xxxMouseEvent() disponibles, pero la API principal que se utiliza para todos los sucesos de ratón es processMouseEvent(). Puede ampliar el resto de las API processxxxMouseEvent() como quiera. Las siguientes implementaciones de Java y .Net de la API processMouseEvent() explican cómo se relacionan el resto de las API processxxxMouseEvent().
El siguiente ejemplo muestra la implementación 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); }
El siguiente ejemplo muestra la implementación .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: // if one click, and it's not a drag, then, we're Done(no need to processPreUpMouseEvent) if (action.GetClickCount() != 1 || action.IsDrag()) ProcessPreUpMouseEvent(action); break; case MouseActionStates.HOVER: ProcessHoverMouseEvent(action); break; } } }
Interfaz IMouseActionInfo
La API processMouseEvent() obtiene detalles de MouseEvent, como EventState, coordenadas de pantalla y el número de sucesos, y utiliza esta información para decidir el método que se graba. El método setMethodSpecification() de IMouseActionInfo se utiliza para devolver un objeto MethodSpecification() como resultado de la API processMouseEvent().
Clase MethodSpecification
El objeto MethodSpecification representa el método que se está grabando para un suceso en particular. Se inicializa con el nombre del método, y el parámetro se establece en el objeto IMouseActionInfo que se pasa a processMouseEvent(). La grabadora recibe este método y graba una determinada acción del usuario.
El siguiente código de ejemplo representa la ampliación de processMouseEvent() en 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) // usually when clicks == 1, the method is click, now we've changed to method to doubleClick method = "doubleClick"; //method = "click"; else if (clicks == 2) // usually when clicks == 2, the method is doubleClick, now we've changed to method to click method = "click"; // method = "doubleClick"; else method = "nClick"; // The method to be recorded is represented using this class in RFT MethodSpecification methodSpec = MethodSpecification.proxyMethod(this, method,null); // The method for the user action is set here action.setActionMethodSpecification(methodSpec); }