org.flowerplatform.web.git.history.internal.WebCommitPlotRenderer.java Source code

Java tutorial

Introduction

Here is the source code for org.flowerplatform.web.git.history.internal.WebCommitPlotRenderer.java

Source

/* license-start
 * 
 * Copyright (C) 2008 - 2013 Crispico, <http://www.crispico.com/>.
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation version 3.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details, at <http://www.gnu.org/licenses/>.
 * 
 * Contributors:
 *   Crispico - Initial API and implementation
 *
 * license-end
 */
package org.flowerplatform.web.git.history.internal;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revplot.AbstractPlotRenderer;
import org.flowerplatform.web.git.history.remote.dto.HistoryDrawingDto;

/**
 *   @author Cristina Constantinescu
 */
public class WebCommitPlotRenderer extends AbstractPlotRenderer<WebLane, String> {

    private final String black = "#000000";
    private final String gray = "#bebebe";
    private final String white = "#ffffff";
    private final String commitDotFill = "#DCDCDC";
    private final String commitDotOutline = "#6E6E6E";

    private WebCommit commit;

    private List<HistoryDrawingDto> drawings;

    private String specialMessage;

    public List<HistoryDrawingDto> getDrawings() {
        return drawings;
    }

    public String getSpecialMessage() {
        return specialMessage;
    }

    public WebCommitPlotRenderer(WebCommit commit) {
        this.commit = commit;
        drawings = new ArrayList<HistoryDrawingDto>();
        specialMessage = "";
    }

    public void paint() {
        paintCommit(commit, 20);
    }

    @Override
    protected String laneColor(WebLane myLane) {
        return myLane != null ? myLane.color : black;
    }

    @Override
    protected void drawLine(String color, int x1, int y1, int x2, int y2, int width) {
        drawings.add(new HistoryDrawingDto(HistoryDrawingDto.DRAW_LINE, x1, y1, x2, y2, width, color));
    }

    @Override
    protected void drawCommitDot(int x, int y, int w, int h) {
        drawings.add(
                new HistoryDrawingDto(HistoryDrawingDto.DRAW_DOT, x, y, w, h, commitDotOutline, commitDotFill));
    }

    @Override
    protected void drawBoundaryDot(int x, int y, int w, int h) {
        drawings.add(new HistoryDrawingDto(HistoryDrawingDto.DRAW_DOT, x, y, w, h, gray, white));
    }

    @Override
    protected int drawLabel(int x, int y, Ref ref) {
        specialMessage += "[" + Repository.shortenRefName(ref.getName()) + "]";
        return 0;
    }

    @Override
    protected void drawText(String msg, int x, int y) {
    }

}