/******************************************************************************* * Copyright 2010 Simon Mieth * * 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. ******************************************************************************/ package org.kabeja.entities; import java.util.ArrayList; import java.util.List; import org.kabeja.common.Type; import org.kabeja.math.Bounds; import org.kabeja.math.Point3D; import org.kabeja.math.TransformContext; /** * @author <a href="mailto:simon.mieth@gmx.de>Simon Mieth</a> * */ public class Leader extends Entity { protected String styleName = ""; protected double arrowHeadSize = 0.0; protected double textGap; protected double scaleFactor; protected double textWidth; protected double textHeight; protected List<Point3D> coordinates = new ArrayList<Point3D>(); protected int pathType = 0; protected int creationType = 0; protected int hooklineDirecton = 0; protected boolean hookline = false; protected Point3D horizontalDirection = new Point3D(); protected Point3D lastOffsetText = new Point3D(); protected Point3D lastOffsetInsertion = new Point3D(); protected boolean arrowEnabled = false; protected String textID = ""; /** * @return Returns the textID. */ public String getTextID() { return textID; } /** * @param textID * The textID to set. */ public void setTextID(String textID) { this.textID = textID; } public Bounds getBounds() { Bounds bounds = new Bounds(); bounds.setValid(false); return bounds; } public Type<Leader> getType() { return Type.TYPE_LEADER; } /** * @return Returns the arrowHeadSize. */ public double getArrowHeadSize() { return arrowHeadSize; } /** * @param arrowHeadSize * The arrowHeadSize to set. */ public void setArrowHeadSize(double arrowHeadSize) { this.arrowHeadSize = arrowHeadSize; } /** * @return Returns the creationType. */ public int getCreationType() { return creationType; } /** * @param creationType * The creationType to set. */ public void setCreationType(int creationType) { this.creationType = creationType; } /** * @return Returns the hookline. */ public boolean isHookline() { return hookline; } /** * @param hookline * The hookline to set. */ public void setHookline(boolean hookline) { this.hookline = hookline; } /** * @return Returns the hooklineDirecton. */ public int getHooklineDirecton() { return hooklineDirecton; } /** * @param hooklineDirecton * The hooklineDirecton to set. */ public void setHooklineDirecton(int hooklineDirecton) { this.hooklineDirecton = hooklineDirecton; } /** * @return Returns the horizontalDirection. */ public Point3D getHorizontalDirection() { return horizontalDirection; } /** * @param horizontalDirection * The horizontalDirection to set. */ public void setHorizontalDirection(Point3D horizontalDirection) { this.horizontalDirection = horizontalDirection; } /** * @return Returns the lastOffsetInsertion. */ public Point3D getLastOffsetInsertion() { return lastOffsetInsertion; } /** * @param lastOffsetInsertion * The lastOffsetInsertion to set. */ public void setLastOffsetInsertion(Point3D lastOffsetInsertion) { this.lastOffsetInsertion = lastOffsetInsertion; } /** * @return Returns the lastOffsetText. */ public Point3D getLastOffsetText() { return lastOffsetText; } /** * @param lastOffsetText * The lastOffsetText to set. */ public void setLastOffsetText(Point3D lastOffsetText) { this.lastOffsetText = lastOffsetText; } /** * @return Returns the pathType. */ public int getPathType() { return pathType; } /** * @param pathType * The pathType to set. */ public void setPathType(int pathType) { this.pathType = pathType; } /** * @return Returns the scaleFactor. */ public double getScaleFactor() { return scaleFactor; } /** * @param scaleFactor * The scaleFactor to set. */ public void setScaleFactor(double scaleFactor) { this.scaleFactor = scaleFactor; } /** * @return Returns the styleName. */ public String getStyleNameID() { return styleName; } /** * @param styleName * The styleName to set. */ public void setStyleNameID(String styleName) { this.styleName = styleName; } /** * @return Returns the textGap. */ public double getTextGap() { return textGap; } /** * @param textGap * The textGap to set. */ public void setTextGap(double textGap) { this.textGap = textGap; } /** * @return Returns the textHeight. */ public double getTextHeight() { return textHeight; } /** * @param textHeight * The textHeight to set. */ public void setTextHeight(double textHeight) { this.textHeight = textHeight; } /** * @return Returns the textWidth. */ public double getTextWidth() { return textWidth; } /** * @param textWidth * The textWidth to set. */ public void setTextWidth(double textWidth) { this.textWidth = textWidth; } public void addCoordinate(Point3D vertex) { coordinates.add(vertex); } public int getCoordinateCount() { return this.coordinates.size(); } public Point3D getCoordinateAt(int index) { return (Point3D) this.coordinates.get(index); } public List<Point3D> getCoordinates() { return this.coordinates; } /** * @return Returns the arrowEnabled. */ public boolean isArrowEnabled() { return arrowEnabled; } /** * @param arrowEnabled * The arrowEnabled to set. */ public void setArrowEnabled(boolean arrowEnabled) { this.arrowEnabled = arrowEnabled; } public boolean isSplinePath() { return this.pathType == 1; } public double getLength() { return 0; } /** * Not implemented yet */ public void transform(TransformContext context) { } }