// ********************************************************************** // // <copyright> // // BBN Technologies // 10 Moulton Street // Cambridge, MA 02138 // (617) 873-8000 // // Copyright (C) BBNT Solutions LLC. All rights reserved. // // </copyright> // ********************************************************************** // // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/layer/mif/MIFText.java,v $ // $RCSfile: MIFText.java,v $ // $Revision: 1.4 $ // $Date: 2005/08/11 20:39:18 $ // $Author: dietrick $ // // ********************************************************************** package com.bbn.openmap.layer.mif; import java.awt.Graphics; import com.bbn.openmap.omGraphics.OMText; import com.bbn.openmap.proj.Projection; /** * Extension of OMText to provide basic support to ensure that the * screen will not become cluttered This extension of OMText defines a * property visibleScale. visibleScale is the OpenMap maximum scale at * which the text will be rendered all scale values after the * visibleScale value will result in the text to be rendered. * <P> * * If visible scale is set to -1 the text will be rendered all all * scale levels. * * @author Simon Bowen */ public class MIFText extends OMText implements MIFGraphic, java.io.Serializable { /** * default visibleScale value is -1 */ private float visibleScale = -1; private boolean renderText = true; /** * @param lat the latitude to display the text string * @param lon the longitude to display the text string * @param txt the text string to display * @param justification from OMText e.g. OMText.JUSTIFY_CENTER * @param visibleScale if visible scale is set to -1 the text will * be rendered all all scale levels. */ public MIFText(float lat, float lon, String txt, int justification, float visibleScale) { super(lat, lon, txt, justification); this.setVisibleScale(visibleScale); } /** * Sets the scale at which the graphic becomes visible, if set to * -1 the graphic is visible at all scale levels. * * @param visibleScale */ public void setVisibleScale(float visibleScale) { this.visibleScale = visibleScale; } public float getVisibleScale() { return this.visibleScale; } /** * Overriden from OMText so that we can handle a flag * <code>renderText</code> to signal to the render method if the * scale is appropriate to render the text or not. */ public synchronized boolean generate(Projection proj) { if ((proj.getScale() <= getVisibleScale()) || (getVisibleScale() == -1)) { this.renderText = true; } else { this.renderText = false; } return super.generate(proj); } /** * Overriden from OMText so that we can handle a flag * <code>renderText</code> to determine if the text should be * rendered or not. */ public synchronized void render(Graphics g) { if (renderText) { super.render(g); } } } /** Last line of file * */