亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? editableomtext.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
// **********************************************************************// // <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/omGraphics/EditableOMText.java,v $// $RCSfile: EditableOMText.java,v $// $Revision: 1.4.2.4 $// $Date: 2005/08/10 22:45:13 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.omGraphics;import java.awt.Color;import java.awt.Component;import java.awt.Font;import java.awt.FontMetrics;import java.awt.Graphics;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.image.BufferedImage;import javax.swing.ImageIcon;import javax.swing.JComboBox;import javax.swing.JComponent;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JToggleButton;import com.bbn.openmap.Environment;import com.bbn.openmap.I18n;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.layer.util.stateMachine.State;import com.bbn.openmap.omGraphics.editable.GraphicEditState;import com.bbn.openmap.omGraphics.editable.GraphicSelectedState;import com.bbn.openmap.omGraphics.editable.GraphicSetOffsetState;import com.bbn.openmap.omGraphics.editable.GraphicUndefinedState;import com.bbn.openmap.omGraphics.editable.TextStateMachine;import com.bbn.openmap.proj.Projection;import com.bbn.openmap.util.Debug;/** * Wrapper class to edit OMText objects. This component is used by the * OMDrawingTool. */public class EditableOMText extends EditableOMGraphic implements ActionListener {    protected GrabPoint gpc;    protected OffsetGrabPoint gpo; // offset    protected OMText text;    public final static int CENTER_POINT_INDEX = 0;    public final static int OFFSET_POINT_INDEX = 1;    /**     * For internationalization.     */    protected I18n i18n = Environment.getI18n();    /**     * Create the EditableOMText, setting the state machine to create     * the point off of the gestures.     */    public EditableOMText() {        createGraphic(null);    }    /**     * Create an EditableOMText with the pointType and renderType     * parameters in the GraphicAttributes object.     */    public EditableOMText(GraphicAttributes ga) {        createGraphic(ga);    }    /**     * Create the EditableOMText with an OMText already defined, ready     * for editing.     *      * @param omc OMText that should be edited.     */    public EditableOMText(OMText omc) {        setGraphic(omc);    }    /**     * Create and initialize the state machine that interprets the     * modifying gestures/commands, as well as ititialize the grab     * points. Also allocates the grab point array needed by the     * EditableOMText.     */    public void init() {        setCanGrabGraphic(false);        setStateMachine(new TextStateMachine(this));        gPoints = new GrabPoint[2];    }    /**     * Set the graphic within the state machine. If the graphic is     * null, then one shall be created, and located off screen until     * the gestures driving the state machine place it on the map.     */    public void setGraphic(OMGraphic graphic) {        init();        if (graphic instanceof OMText) {            text = (OMText) graphic;            stateMachine.setSelected();            setGrabPoints(text);        } else {            createGraphic(null);        }    }    /**     * Create and set the graphic within the state machine. The     * GraphicAttributes describe the type of point to create.     */    public void createGraphic(GraphicAttributes ga) {        init();        stateMachine.setUndefined();        int renderType = OMGraphic.RENDERTYPE_UNKNOWN;        if (ga != null) {            renderType = ga.getRenderType();        }        switch (renderType) {        case (OMGraphic.RENDERTYPE_LATLON):            text = new OMText(90f, -180f, "Text", OMText.JUSTIFY_LEFT);            break;        case (OMGraphic.RENDERTYPE_OFFSET):            text = new OMText(90f, -180f, 0, 0, "Text", OMText.JUSTIFY_LEFT);            break;        default:            text = new OMText(0, 0, "Text", OMText.JUSTIFY_LEFT);        }        if (ga != null) {            ga.setTo(text);            text.setLinePaint(ga.getLinePaint());        }        assertGrabPoints();    }    /**     * Get the OMGraphic being created/modified by the EditableOMText.     */    public OMGraphic getGraphic() {        return text;    }    /**     * Attach to the Moving OffsetGrabPoint so if it moves, it will     * move this EditableOMGraphic with it. EditableOMGraphic version     * doesn't do anything, each subclass has to decide which of its     * OffsetGrabPoints should be attached to it.     */    public void attachToMovingGrabPoint(OffsetGrabPoint gp) {        gp.addGrabPoint(gpo);    }    /**     * Detach from a Moving OffsetGrabPoint. The EditableOMGraphic     * version doesn't do anything, each subclass should remove     * whatever GrabPoint it would have attached to an     * OffsetGrabPoint.     */    public void detachFromMovingGrabPoint(OffsetGrabPoint gp) {        gp.removeGrabPoint(gpo);    }    /**     * Set the GrabPoint that is in the middle of being modified, as a     * result of a mouseDragged event, or other selection process.     */    public void setMovingPoint(GrabPoint gp) {        super.setMovingPoint(gp);    }    /**     * Given a MouseEvent, find a GrabPoint that it is touching, and     * set the moving point to that GrabPoint.     *      * @param e MouseEvent     * @return GrabPoint that is touched by the MouseEvent, null if     *         none are.     */    public GrabPoint getMovingPoint(MouseEvent e) {        movingPoint = null;        GrabPoint[] gb = getGrabPoints();        int x = e.getX();        int y = e.getY();        for (int i = gb.length - 1; i >= 0; i--) {            if (gb[i] != null && gb[i].distance(x, y) == 0) {                setMovingPoint(gb[i]);                // in case the points are on top of each other, the                // last point in the array will take precidence.                break;            }        }        return movingPoint;    }    protected int lastRenderType = -1;    /**     * Check to make sure the grab points are not null. If they are,     * allocate them, and them assign them to the array.     */    public void assertGrabPoints() {        int rt = getGraphic().getRenderType();        if (rt != lastRenderType) {            clearGrabPoints();            lastRenderType = rt;        }        if (gpc == null) {            gpc = new GrabPoint(-1, -1);            gPoints[CENTER_POINT_INDEX] = gpc;        }        if (gpo == null) {            gpo = new OffsetGrabPoint(-1, -1);            gPoints[OFFSET_POINT_INDEX] = gpo;            gpo.addGrabPoint(gpc);        }    }    protected void clearGrabPoints() {        gpc = null;        gpo = null;        gPoints[CENTER_POINT_INDEX] = gpc;        gPoints[OFFSET_POINT_INDEX] = gpo;    }    /**     * Set the grab points for the graphic provided, setting them on     * the extents of the graphic. Called when you want to set the     * grab points off the location of the graphic.     */    public void setGrabPoints(OMGraphic graphic) {        if (!(graphic instanceof OMText)) {            return;        }        assertGrabPoints();        OMText text = (OMText) graphic;        boolean ntr = text.getNeedToRegenerate();        int renderType = text.getRenderType();        LatLonPoint llp;        int latoffset = 0;        int lonoffset = 0;        boolean doStraight = true;        if (ntr == false) {            if (renderType == OMGraphic.RENDERTYPE_LATLON                    || renderType == OMGraphic.RENDERTYPE_OFFSET) {                if (projection != null) {                    float lon = text.getLon();                    float lat = text.getLat();                    llp = new LatLonPoint(lat, lon);                    java.awt.Point p = projection.forward(llp);                    if (renderType == OMGraphic.RENDERTYPE_LATLON) {                        doStraight = false;                        gpc.set((int) p.getX(), (int) p.getY());                    } else {                        latoffset = (int) p.getY();                        lonoffset = (int) p.getX();                        gpo.set(lonoffset, latoffset);                    }                }            }            if (doStraight) {                gpc.set(lonoffset + text.getX(), latoffset + text.getY());            }            if (renderType == OMGraphic.RENDERTYPE_OFFSET) {                gpo.updateOffsets();            }        } else {            System.out.println("EditableOMText.setGrabPoint: graphic needs to be regenerated");        }    }    /**     * Take the current location of the GrabPoints, and modify the     * location parameters of the OMPoint with them. Called when you     * want the graphic to change according to the grab points.     */    public void setGrabPoints() {        int renderType = text.getRenderType();        LatLonPoint llp1;        Debug.message("eomt", "EditableOMText.setGrabPoints()");        // Do center point for lat/lon or offset points        if (renderType == OMGraphic.RENDERTYPE_LATLON) {            if (projection != null) {                // movingPoint == gpc

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费在线播放| 亚洲一区二区三区小说| 国产精品久久久久久久久免费樱桃| 亚洲欧美另类图片小说| 韩国成人在线视频| 欧美三级日本三级少妇99| 国产精品久久三区| 国产一本一道久久香蕉| 欧美一区二区三区婷婷月色| 一区二区三区影院| 成人黄色777网| 久久久久久亚洲综合影院红桃| 午夜精品一区在线观看| 91麻豆6部合集magnet| 欧美国产欧美综合| 国产精品亚洲成人| 久久久久久日产精品| 国内外精品视频| 日韩美女天天操| 美女精品自拍一二三四| 555www色欧美视频| 午夜电影一区二区三区| 色综合天天在线| 中文字幕在线一区免费| 高清成人免费视频| 国产校园另类小说区| 国产在线看一区| 久久精品水蜜桃av综合天堂| 蜜桃精品视频在线| 日韩欧美高清dvd碟片| 久久不见久久见免费视频7| 3d成人h动漫网站入口| 午夜精品免费在线观看| 欧美日韩黄视频| 秋霞电影一区二区| 日韩欧美电影一二三| 日本一区中文字幕| 精品久久国产字幕高潮| 国内精品伊人久久久久av影院| 26uuu色噜噜精品一区二区| 国产一区二区三区在线观看免费视频| 精品免费国产二区三区| 国内精品写真在线观看 | 国产麻豆精品视频| 精品不卡在线视频| 国产精品白丝jk黑袜喷水| 国产视频一区不卡| 91美女蜜桃在线| 亚洲成人动漫在线免费观看| 337p亚洲精品色噜噜| 久久不见久久见免费视频7| 国产亚洲欧美色| 99re热视频精品| 五月天网站亚洲| 久久久一区二区三区| 成人a免费在线看| 午夜伦欧美伦电影理论片| 欧美精品一区二区三区一线天视频| 国产精品一区二区视频| 亚洲愉拍自拍另类高清精品| 制服视频三区第一页精品| 国产成+人+日韩+欧美+亚洲| 亚洲免费观看高清完整版在线观看熊 | 一区二区三区在线观看国产| 欧美卡1卡2卡| 成人免费av在线| 日日夜夜精品视频天天综合网| 久久婷婷综合激情| 在线看日本不卡| 国产河南妇女毛片精品久久久| 中文字幕一区不卡| 日韩色视频在线观看| 成人在线综合网| 日韩va欧美va亚洲va久久| 国产精品久久免费看| 日韩免费高清视频| 91久久一区二区| 国产乱子伦一区二区三区国色天香 | 91一区一区三区| 国产一区美女在线| 午夜久久久影院| 亚洲视频在线一区| 国产丝袜在线精品| 欧美一区二区三区白人| 色欲综合视频天天天| 国产乱子轮精品视频| 午夜久久久久久| 一区二区三区免费观看| 国产视频一区不卡| 精品国产sm最大网站| 欧美性受xxxx黑人xyx性爽| 国产1区2区3区精品美女| 久久精品二区亚洲w码| 亚洲国产欧美另类丝袜| 日韩美女精品在线| 亚洲国产精品av| 精品成人佐山爱一区二区| 欧美欧美午夜aⅴ在线观看| 97se狠狠狠综合亚洲狠狠| 国产成人亚洲综合a∨婷婷图片| 日本v片在线高清不卡在线观看| 亚洲精品第1页| 亚洲欧美视频在线观看| 国产精品久久久久久久久动漫 | 国产成人在线影院| 韩国三级中文字幕hd久久精品| 日韩av一级片| 日韩高清欧美激情| 日本在线不卡一区| 奇米影视在线99精品| 日日摸夜夜添夜夜添亚洲女人| 亚洲自拍另类综合| 亚洲国产精品久久久男人的天堂| 一区二区日韩av| 艳妇臀荡乳欲伦亚洲一区| 一二三四社区欧美黄| 亚洲图片欧美综合| 天天操天天综合网| 久久99精品久久只有精品| 另类综合日韩欧美亚洲| 久久精品99国产国产精| 久久精品国产99国产| 激情深爱一区二区| 国产宾馆实践打屁股91| 97精品久久久午夜一区二区三区 | 色吊一区二区三区 | 91看片淫黄大片一级| 一本一道久久a久久精品 | 99久久综合99久久综合网站| 91亚洲精品久久久蜜桃网站| 91香蕉国产在线观看软件| 日本电影亚洲天堂一区| 337p亚洲精品色噜噜狠狠| www激情久久| 亚洲天堂免费在线观看视频| 一个色综合av| 久久99蜜桃精品| 成人教育av在线| 欧美性猛片aaaaaaa做受| 日韩一级黄色大片| 中文字幕欧美国产| 一区二区三区四区在线| 美国欧美日韩国产在线播放| 福利一区在线观看| 欧美伊人久久大香线蕉综合69| 91精品国产乱码久久蜜臀| 久久九九国产精品| 尤物视频一区二区| 精品综合免费视频观看| 94-欧美-setu| 日韩欧美一区二区久久婷婷| 国产精品久久毛片| 日本系列欧美系列| 99久久99久久免费精品蜜臀| 在线播放欧美女士性生活| 国产日韩av一区| 日韩va欧美va亚洲va久久| 成人99免费视频| 欧美xingq一区二区| 亚洲日本韩国一区| 国产麻豆精品在线| 欧美精三区欧美精三区| 国产精品家庭影院| 另类综合日韩欧美亚洲| 欧美亚洲国产一区二区三区va | 亚洲一区二区三区四区中文字幕| 久久国产三级精品| 欧美色视频在线| 亚洲视频 欧洲视频| 激情图区综合网| 制服丝袜中文字幕一区| 一区二区激情视频| 成人av午夜电影| 2023国产精品| 毛片av一区二区三区| 欧美日韩国产高清一区二区| 国产精品久久午夜| 国产精品亚洲综合一区在线观看| 91精品久久久久久久99蜜桃| 夜夜亚洲天天久久| 成人动漫视频在线| 欧美国产一区在线| 国产精品自拍网站| 亚洲精品一区二区三区福利| 青青草国产成人av片免费| 欧美综合天天夜夜久久| 亚洲天堂成人网| 不卡区在线中文字幕| 国产欧美一区二区精品秋霞影院| 毛片一区二区三区| 欧美xxxxxxxx| 激情综合网av| 亚洲精品一区二区精华| 美女视频一区二区| 精品免费视频一区二区| 精久久久久久久久久久| 精品久久五月天| 国产精品一线二线三线精华| 精品国精品国产| 国产精品一品二品|