com.orange.atk.results.logger.log.Action.java Source code

Java tutorial

Introduction

Here is the source code for com.orange.atk.results.logger.log.Action.java

Source

/*
 * Software Name : ATK
 *
 * Copyright (C) 2007 - 2012 France Tlcom
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * ------------------------------------------------------------------
 * File Name   : Action.java
 *
 * Created     : 02/03/2009
 * Author(s)   : Yvain Leyral
 */
package com.orange.atk.results.logger.log;

import java.awt.Font;
import java.awt.Paint;
import java.util.Date;

import org.jfree.chart.annotations.XYTextAnnotation;
import org.jfree.chart.plot.IntervalMarker;
import org.jfree.ui.TextAnchor;

/**
 * This class stores an action sent to the phone
 */

public class Action {
    private String MsgType = null;
    private String szActionName = null;
    private Date startTime = null;
    private Date endTime = null;
    private IntervalMarker NewMarker = null;
    private XYTextAnnotation annotation = null;

    /**
     * Set Annotation properties  used in Analysis Tool (keypress,log,screenshot...) 
     * For each action a marker and an Annotation is related
     * @param Xvalue StartTime of Marker Action
     * @param Yvalue Position where to display the comment 1 for the top 0 for the bottom
     * @param color Color of Marker
     */

    public void setAnnotation(double Xvalue, Paint color) {
        if (szActionName != null) {
            annotation = new XYTextAnnotation(szActionName, Xvalue, 0.05);
            annotation.setFont(new Font("SansSerif", Font.PLAIN, 12));
            annotation.setRotationAngle(3 * Math.PI / 2);
            annotation.setRotationAnchor(TextAnchor.BOTTOM_LEFT);
            annotation.setTextAnchor(TextAnchor.BOTTOM_LEFT);
            annotation.setToolTipText(szActionName);
            annotation.setPaint(color);
        }
    }

    public XYTextAnnotation getAnnotation() {
        return annotation;
    }

    /**
    * Set Marker properties  used in Analysis Tool (keypress,log,screenshot...) 
    * For each action a marker and an Annotation is related
    * @param Xvalue StartTime of Marker Action
    * @param Xvalue2 EndTime of Marker Action
    * @param color Color of Marker
    */

    public void setMarker(double Xvalue, double Xvalue2, Paint color) {
        NewMarker = new IntervalMarker(Xvalue, Xvalue2);
        NewMarker.setPaint(color);

    }

    /**
     * Get the get action marker
     * 
     * @return marker
     */

    public IntervalMarker getMarker() {
        return NewMarker;
    }

    /**
     * Get the MsgType, should not be null
     * 
     * @return the actions name
     */
    public String getMsgType() {
        return MsgType;
    }

    /**
     * Get the actions name, should not be null
     * 
     * @return the actions name
     */
    public String getActionName() {
        return szActionName;
    }

    /**
     * Set the MsgType. Possibles values are names of the executed actions
     * (like Exeption, keyPress, ...)
     * 
     * @param MsgType
     *            Type de message
     * @throws NullPointerException
     *             if szActionName is Null
     * @throws IllegalArgumentException
     *             when szActionName is not valid (empty string, ...)
     */
    public void setMsgType(String MsgType) {
        if (MsgType == null)
            throw new NullPointerException();
        if (MsgType.equals(""))
            throw new IllegalArgumentException();
        this.MsgType = MsgType;
    }

    /**
     * Set the actionName. Possibles values are names of the executed actions
     * (like key, keyDown, ...)
     * 
     * @param szActionName
     *            name of an action
     * @throws NullPointerException
     *             if szActionName is Null
     * @throws IllegalArgumentException
     *             when szActionName is not valid (empty string, ...)
     */
    public void setActionName(String szActionName) {
        if (szActionName == null)
            throw new NullPointerException();
        if (szActionName.equals(""))
            this.szActionName = "Empty String From Phone";
        this.szActionName = szActionName;
    }

    /**
     * Get the time when an action starts
     * 
     * @return the start time of an action
     */
    public Date getStartTime() {
        return (Date) startTime.clone();
    }

    /**
     * Set the time when an action start
     * 
     * @param startTime
     *            the start time of an action
     * @throws NullPointerException
     *             if startTime is Null
     * @throws IllegalArgumentException
     *             when startTime is not valid (empty string, ...)
     */
    public void setStartTime(Date startTime) {
        this.startTime = (Date) startTime.clone();
    }

    /**
     * Get the time when an action ends
     * 
     * @return the end time of an action
     */
    public Date getEndTime() {
        return (Date) endTime.clone();
    }

    /**
     * set the time when an action ends
     * 
     * @param endTime
     * @throws NullPointerException
     *             if endTime is Null
     * @throws IllegalArgumentException
     *             when endTime is not valid (empty string, ...)
     */
    public void setEndTime(Date endTime) {
        this.endTime = (Date) endTime.clone();
    }

}