br.org.archimedes.io.pdf.elements.LeaderExporter.java Source code

Java tutorial

Introduction

Here is the source code for br.org.archimedes.io.pdf.elements.LeaderExporter.java

Source

/**
 * Copyright (c) 2008, 2009 Hugo Corbucci and others.<br>
 * All rights reserved. This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html<br>
 * <br>
 * Contributors:<br>
 * Hugo Corbucci - initial API and implementation<br>
 * <br>
 * This file was created on 2008/06/23, 10:01:23, by Hugo Corbucci.<br>
 * It is part of package br.org.archimedes.io.pdf.elements on the br.org.archimedes.io.pdf project.<br>
 */

package br.org.archimedes.io.pdf.elements;

import br.org.archimedes.Constant;
import br.org.archimedes.exceptions.NotSupportedException;
import br.org.archimedes.interfaces.ElementExporter;
import br.org.archimedes.io.pdf.PDFWriterHelper;
import br.org.archimedes.leader.Leader;
import br.org.archimedes.model.Point;
import br.org.archimedes.model.Rectangle;

import com.lowagie.text.pdf.PdfContentByte;

import java.io.IOException;

/**
 * Belongs to package br.org.archimedes.io.pdf.
 * 
 * @author Hugo Corbucci
 */
public class LeaderExporter implements ElementExporter<Leader> {

    /* (non-Javadoc)
     * @see br.org.archimedes.interfaces.ElementExporter#exportElement(br.org.archimedes.model.Element, java.lang.Object)
     */
    public void exportElement(Leader leader, Object outputObject) throws IOException, NotSupportedException {

        PDFWriterHelper helper = (PDFWriterHelper) outputObject;
        PdfContentByte cb = helper.getPdfContentByte();

        Point tip = leader.getPointer().getInitialPoint();
        LineExporter exporter = new LineExporter();
        exporter.exportElement(leader.getPointer(), outputObject);
        exporter.exportElement(leader.getTextBase(), outputObject);

        Point center = helper.modelToDocument(tip);
        float centerX = (float) center.getX();
        float centerY = (float) center.getY();
        float radius = (float) Constant.LEADER_RADIUS;
        cb.circle(centerX, centerY, radius);

        cb.closePathFillStroke();
    }

    /* (non-Javadoc)
     * @see br.org.archimedes.interfaces.ElementExporter#exportElement(br.org.archimedes.model.Element, java.lang.Object, br.org.archimedes.model.Rectangle)
     */
    public void exportElement(Leader element, Object outputObject, Rectangle boundingBox)
            throws IOException, NotSupportedException {

        throw new NotSupportedException();
    }
}