com.orange.atk.graphAnalyser.GraphMarker.java Source code

Java tutorial

Introduction

Here is the source code for com.orange.atk.graphAnalyser.GraphMarker.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   : GraphMarker.java
 *
 * Created     : 02/03/2009
 * Author(s)   : Yvain Leyral
 */
package com.orange.atk.graphAnalyser;

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

import org.apache.log4j.Logger;
import org.jfree.chart.plot.XYPlot;

import com.orange.atk.results.logger.log.Action;

/**
 *
 * @author ywil8421
 */
public class GraphMarker {

    private XYPlot xyplot = null;
    private Vector<Action> Vectaction = new Vector<Action>();

    private Paint color = null;
    private boolean isActivate = false;

    public GraphMarker(XYPlot xyplot, Vector<Action> Vectaction, Paint color) {

        if (Vectaction == null)
            this.Vectaction = new Vector<Action>();
        else
            this.Vectaction = Vectaction;

        this.color = color;
        this.xyplot = xyplot;
    }

    /**
    * Calculate marker legend position depending of the maximum legend
    */

    public void setMarkerPosition() {
        Vector<Action> listActions = Vectaction;
        for (int i = 0; i < listActions.size(); i++) {
            Action action = listActions.get(i); //remove 
            double XvalueStart = ((double) (action.getStartTime().getTime()));
            double XvalueEnd = ((double) (action.getEndTime().getTime()));

            action.setAnnotation(XvalueStart, color);
            action.setMarker(XvalueStart, XvalueEnd, color);

        }
    }

    /**
    * refresh marker (remove,calculate position and draw)
    */
    public void refreshMarker() {
        if (isActivate) {
            removeMarker();
            setMarkerPosition();
            drawMarker();
        }

    }

    /**
     * draw marker
     */
    public final synchronized void drawMarker() {
        setMarkerPosition();
        Vector<Action> listActions = Vectaction;
        for (int i = 0; i < listActions.size(); i++) {
            Action action = listActions.get(i);
            if (action.getMarker() != null)
                xyplot.addDomainMarker(action.getMarker());
            else
                Logger.getLogger(this.getClass())
                        .debug("Erreur ActionName:" + action.getActionName() + " Remove MsgType "
                                + action.getMsgType() + " StartTime " + action.getStartTime() + " EndTime "
                                + action.getEndTime());

            if (action.getAnnotation() != null)
                xyplot.addAnnotation(action.getAnnotation());
            else
                Logger.getLogger(this.getClass())
                        .debug("Erreur ActionName:" + action.getActionName() + " Remove MsgType "
                                + action.getMsgType() + " StartTime " + action.getStartTime() + " EndTime "
                                + action.getEndTime());
        }
        isActivate = true;

    }

    public void setActivate(boolean isActivate) {
        this.isActivate = isActivate;
    }

    public final synchronized void addEvent(String Msgtype, String ActionName, Date startTime, Date endTime) {

        Action action = new Action();
        action.setMsgType(Msgtype);
        action.setActionName(ActionName);
        action.setStartTime(startTime);
        action.setEndTime(endTime);
        Vectaction.add(action);

        double XvalueStart = ((double) (action.getStartTime().getTime()));
        double XvalueEnd = ((double) (action.getEndTime().getTime()));
        action.setAnnotation(XvalueStart, color);
        action.setMarker(XvalueStart, XvalueEnd, color);
        xyplot.addDomainMarker(action.getMarker());
        xyplot.addAnnotation(action.getAnnotation());

    }

    /**
     * remove marker
     */
    public void removeMarker() {
        Vector<Action> listActions = Vectaction;
        int size = listActions.size();

        for (int i = 0; i < size; i++) {
            Action action = listActions.get(i);
            if (action.getMarker() != null)
                xyplot.removeDomainMarker(action.getMarker());
            else
                Logger.getLogger(this.getClass())
                        .debug("Erreur ActionName:" + action.getActionName() + " Remove MsgType "
                                + action.getMsgType() + " StartTime " + action.getStartTime() + " EndTime "
                                + action.getEndTime());
            if (action.getAnnotation() != null)
                xyplot.removeAnnotation(action.getAnnotation());
            else
                Logger.getLogger(this.getClass())
                        .debug("Erreur ActionName:" + action.getActionName() + "Remove MsgType "
                                + action.getMsgType() + " StartTime " + action.getStartTime() + " EndTime "
                                + action.getEndTime());
        }
        isActivate = false;

    }

    public Paint getColor() {
        return color;
    }

    public boolean isActivate() {
        return isActivate;
    }

}