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

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

?? editableomgraphiclist.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
字號:
// **********************************************************************// // <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/EditableOMGraphicList.java,v $// $RCSfile: EditableOMGraphicList.java,v $// $Revision: 1.2.2.1 $// $Date: 2004/10/14 18:27:24 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.omGraphics;import java.awt.event.MouseEvent;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import com.bbn.openmap.omGraphics.editable.*;import com.bbn.openmap.proj.Projection;import com.bbn.openmap.tools.drawing.OMDrawingTool;import com.bbn.openmap.util.Debug;/** * An EditableOMGraphic list encapsulates an OMGraphicList to move the * editable ones around when they are selected as a group. */public class EditableOMGraphicList extends EditableOMGraphic {    /**     * For grabing the list objects and moving them.     */    protected OffsetGrabPoint gpm;    /**     * The list of OMGraphics being selected and moved.     */    protected OMGraphicList list;    /**     * The list of editables wrapping the list contents.     */    protected List editables;    /**     * Create an empty EditableOMGraphicList, ready to have OMGraphics     * added to it.     */    public EditableOMGraphicList() {        this(new OMGraphicList());    }    /**     * Create the EditableOMGraphicList with an OMGraphicList already     * defined, ready for editing.     *      * @param oml OMGraphicList that should be handled.     */    public EditableOMGraphicList(OMGraphicList oml) {        setGraphic(oml);    }    public List getEditables() {        if (editables == null) {            editables = new LinkedList();        }        return editables;    }    /**     * 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     * EditableOMGraphicList.     */    public void init() {        Debug.message("eomg", "EditableOMGraphicList.init()");        getEditables();        setStateMachine(new ListStateMachine(this));    }    /**     * Must be called on a EditableOMGraphicList that is created from     * an OMGraphicList containing OMGraphics.     *      * @param drawingTool OMDrawingTool used to create     *        EditableOMGraphics for other OMGraphics on the list,     *        which will in turn be managed by this     *        EditableOMGraphicList. If this is null, nothing will get     *        done. If this drawing tool doesn't know how to create an     *        EditableOMGraphic for anything on the list, those things     *        will not be managed.     */    public void init(OMDrawingTool drawingTool) {        if (list != null) {            for (Iterator it = list.iterator(); it.hasNext();) {                OMGraphic omg = (OMGraphic) it.next();                // Do we need to handle OMGraphicLists in a special                // way?                if (omg.isVisible()) {                    add(omg, drawingTool);                }            }        }    }    public GrabPoint[] getGrabPoints() {        return new GrabPoint[] { gpm };    }    /**     * 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 OMGraphicList) {            list = (OMGraphicList) graphic;            list.setProcessAllGeometries(true);            stateMachine.setSelected();            gpm = new OffsetGrabPoint(-10, -10);        } else {            createGraphic(null);        }    }    /**     * Create and set the graphic within the state machine. The     * GraphicAttributes describe the type of line to create.     */    public void createGraphic(GraphicAttributes ga) {        init();        stateMachine.setUndefined();        OMGraphicList tmpList = new OMGraphicList();        if (ga != null) {            ga.setTo(tmpList);        }        setGraphic(tmpList);    }    /**     * Get the OMGraphic being created/modified by the     * EditableOMGraphicList.     */    public OMGraphic getGraphic() {        return list;    }    public void add(OMGraphicList list, OMDrawingTool drawingTool) {        for (Iterator it = list.iterator(); it.hasNext();) {            add((OMGraphic) it.next(), drawingTool);        }    }    /**     * Create an EditableOMGraphic and add it to the list.     *      * @param omg OMGraphic to add.     * @param drawingTool to use to figure out what EditableOMGraphic     *        to use for the OMGraphic.     * @return EditableOMGraphic if successful, null if not.     */    public EditableOMGraphic add(OMGraphic omg, OMDrawingTool drawingTool) {        EditableOMGraphic editable = null;        if (omg instanceof OMGraphicList) {            add((OMGraphicList) omg, drawingTool);            return editable;        }        if (omg != null && drawingTool != null) {            // The OMDrawingTool knows how to create an            // EditableOMGraphic for the omg            editable = drawingTool.getEditableGraphic(omg);            if (editable != null) {                add(editable);            } else {                if (Debug.debugging("eomg")) {                    Debug.output("EditableOMGraphicList can't handle "                            + omg.getClass().getName());                }            }        } else {            if (Debug.debugging("eomg")) {                Debug.output("EditableOMGraphicList told to add null OMGraphic or null OMDrawingTool");            }        }        return editable;    }    /**     * Add the EditableOMGraphic to the list.     */    public void add(EditableOMGraphic editable) {        if (editable == null) {            if (Debug.debugging("eomg")) {                Debug.output("EditableOMGraphicList adding null EditableOMGraphic");            }            return;        }        if (Debug.debugging("eomg")) {            Debug.output("EditableOMGraphicList adding "                    + editable.getClass().getName() + " " + editable);        }        OMGraphic graphic = editable.getGraphic();        if (!list.contains(graphic)) {            getEditables().add(editable);            editable.setProjection(getProjection());            // Need this for distance measurements.            list.add(graphic);            editable.attachToMovingGrabPoint(gpm);        } else {            if (Debug.debugging("eomg")) {                Debug.output("EditableOMGraphicList.add("                        + editable.getClass().getName()                        + ") not added, duplicate");            }        }    }    /**     * Remove an OMGraphic from being moved.     */    public void remove(OMGraphic omg) {        for (Iterator it = getEditables().iterator(); it.hasNext();) {            EditableOMGraphic eomg = (EditableOMGraphic) it.next();            if (eomg.getGraphic() == omg) {                remove(eomg);                list.remove(omg);            }        }    }    /**     * Remove the EditableOMGraphic from the list.     */    public boolean remove(EditableOMGraphic editable) {        if (editable == null) {            if (Debug.debugging("eomg")) {                Debug.output("EditableOMGraphicList removing null EditableOMGraphic");            }            return false;        }        if (Debug.debugging("eomg")) {            Debug.output("EditableOMGraphicList removing "                    + editable.getClass().getName());        }        editable.setProjection(null);        editable.detachFromMovingGrabPoint(gpm);        boolean ret = getEditables().remove(editable);        return ret;    }    /**     * Remove all EditableOMGraphics and clear out.     */    public void clear() {        //      list.processAllGeometries(false);        //      list.clear();        //      list = null;        getEditables().clear();        gpm.clear();    }    /**     * Set the current projection.     */    public void setProjection(Projection proj) {        if (Debug.debugging("eomg")) {            Debug.output("EOMGL: setProjection(" + proj + ")");        }        super.setProjection(proj);        for (Iterator it = getEditables().iterator(); it.hasNext();) {            ((EditableOMGraphic) it.next()).setProjection(proj);        }    }    /**     * Take the current location of the GrabPoints, and modify the     * location parameters of the OMLine with them. Called when you     * want the graphic to change according to the grab points.     */    public void setGrabPoints() {        for (Iterator it = getEditables().iterator(); it.hasNext();) {            EditableOMGraphic editable = (EditableOMGraphic) it.next();            editable.setGrabPoints();            //          if (Debug.debugging("eomg")) {            //              Debug.output(" -- setting GrabPoints on " +            // editable.getClass().getName());            //          }        }    }    public GrabPoint getMovingPoint(MouseEvent me) {        // For the EdtiableOMGraphicList, this should just go ahead        // and test for contact for anything on the OMGraphicList, and        // return the gpm for that point.        if (list != null) {            float distance = list.distance(me.getX(), me.getY());            if (distance <= 4) {                // will set movingPoint                move(me);            } else {                //              int count = 0;                //              for (Iterator it = list.iterator(); it.hasNext();)                // {                //                  OMGraphic omg = (OMGraphic)it.next();                //                  Debug.output(" graphic " + (count++) + " distance("                // +                //                               omg.distance(me.getX(), me.getY()) + ") ntbr: " +                //                               omg.getNeedToRegenerate());                //              }                movingPoint = null;            }        } else {            //          Debug.output("EOMGL.getMovingPoint() null list");            movingPoint = null;        }        return movingPoint;    }    /**     * Called to set the OffsetGrabPoint to the current mouse     * location, and update the OffsetGrabPoint with all the other     * GrabPoint locations, so everything can shift smoothly. Should     * also set the OffsetGrabPoint to the movingPoint. Should be     * called only once at the beginning of the general movement, in     * order to set the movingPoint. After that, redraw(e) should just     * be called, and the movingPoint will make the adjustments to the     * graphic that are needed.     */    public void move(MouseEvent e) {        if (gpm != null) {            gpm.set(e.getX(), e.getY());            gpm.updateOffsets();            movingPoint = gpm;        }    }    /**     * Use the current projection to place the graphics on the screen.     * Has to be called to at least assure the graphics that they are     * ready for rendering. Called when the graphic position changes.     *      * @param proj com.bbn.openmap.proj.Projection     * @return true     */    public boolean generate(Projection proj) {        Debug.message("eomg", "EditableOMGraphicList.generate()");        for (Iterator it = getEditables().iterator(); it.hasNext();) {            ((EditableOMGraphic) it.next()).generate(proj);        }        if (gpm != null)            gpm.generate(proj);        return true;    }    /**     * Given a new projection, the grab points may need to be     * repositioned off the current position of the graphic. Called     * when the projection changes.     */    public void regenerate(Projection proj) {        Debug.message("eomg", "EditableOMGraphicList.regenerate()");        for (Iterator it = getEditables().iterator(); it.hasNext();) {            ((EditableOMGraphic) it.next()).regenerate(proj);        }        if (gpm != null)            gpm.generate(proj);    }    /**     * Draw the EditableOMGraphicList parts into the java.awt.Graphics     * object. The grab points are only rendered if the line machine     * state is LineSelectedState.LINE_SELECTED.     *      * @param graphics java.awt.Graphics.     */    public void render(java.awt.Graphics graphics) {        for (Iterator it = getEditables().iterator(); it.hasNext();) {            ((EditableOMGraphic) it.next()).render(graphics);        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线不卡一区| 亚洲一区欧美一区| 色婷婷av一区二区| 精品一区二区三区不卡| 亚洲青青青在线视频| 精品国产凹凸成av人网站| 91精品福利视频| 国产成人精品免费| 美日韩黄色大片| 亚洲成av人片一区二区梦乃| 国产精品久久久久7777按摩| 精品国产乱码久久久久久影片| 欧美性xxxxx极品少妇| av成人动漫在线观看| 国产剧情一区在线| 麻豆freexxxx性91精品| 亚洲国产日韩a在线播放| 亚洲视频 欧洲视频| 欧美国产激情二区三区| 精品成人一区二区三区| 91精品欧美综合在线观看最新| 色天天综合久久久久综合片| 不卡的av在线播放| 国产成人在线免费| 精品影院一区二区久久久| 日韩中文字幕麻豆| 亚洲成人三级小说| 亚洲成人av福利| 亚洲成av人片一区二区梦乃| 亚洲午夜免费视频| 亚洲国产视频一区二区| 亚洲一区二区三区自拍| 亚洲码国产岛国毛片在线| 亚洲免费在线视频| 亚洲精品亚洲人成人网在线播放| 国产精品进线69影院| 中文字幕在线不卡视频| 亚洲欧美成人一区二区三区| 亚洲欧美经典视频| 亚洲激情校园春色| 一区二区三区欧美| 亚洲综合小说图片| 亚洲综合免费观看高清完整版| 亚洲色图制服诱惑 | 日本大胆欧美人术艺术动态| 亚洲国产wwwccc36天堂| 天天综合色天天综合色h| 亚洲第一精品在线| 日韩不卡免费视频| 久久激情五月婷婷| 国产在线精品一区二区不卡了 | 日韩伦理免费电影| 亚洲欧美一区二区三区国产精品 | 亚洲色图视频网站| 亚洲免费av观看| 亚洲影院久久精品| 秋霞电影网一区二区| 久久69国产一区二区蜜臀| 国产精品99久久久久久久女警| 国产成人亚洲综合a∨婷婷图片| 成人一级片在线观看| 一本久久a久久免费精品不卡| 精品视频在线视频| 日韩免费观看高清完整版在线观看| 久久蜜臀中文字幕| 日韩理论片一区二区| 视频一区国产视频| 国产九色sp调教91| 日本精品一级二级| 日韩视频在线观看一区二区| 久久老女人爱爱| 亚洲制服丝袜av| 六月丁香婷婷久久| 91在线国产福利| 制服丝袜中文字幕一区| 国产人伦精品一区二区| 一区二区不卡在线播放| 精品在线观看视频| 色婷婷久久综合| 日韩欧美在线1卡| 亚洲视频狠狠干| 久久99精品久久久久| 99免费精品视频| 日韩精品在线看片z| 最近日韩中文字幕| 狠狠色丁香久久婷婷综| 在线观看亚洲精品| 国产丝袜在线精品| 午夜视频在线观看一区| 成人午夜在线播放| 欧美一级片免费看| 一区二区理论电影在线观看| 国产一区二区三区四区五区入口| 在线观看国产一区二区| 久久精品日产第一区二区三区高清版| 一区二区三区毛片| 成人18精品视频| 精品国产网站在线观看| 亚洲国产综合色| av不卡在线观看| 国产亚洲欧美色| 日本欧美加勒比视频| 日本韩国一区二区三区视频| 欧美高清在线精品一区| 玖玖九九国产精品| 欧美日本免费一区二区三区| 国产精品福利影院| 国产麻豆视频精品| 欧美成人福利视频| 亚洲观看高清完整版在线观看| 成人av免费在线| 精品国产伦一区二区三区观看方式| 亚洲第四色夜色| 91福利资源站| 亚洲国产视频直播| 一本到高清视频免费精品| 亚洲国产精品二十页| 国产美女av一区二区三区| 日韩欧美国产综合| 日韩福利视频导航| 欧美三区在线观看| 亚洲激情六月丁香| 日本二三区不卡| 亚洲日本在线a| 91免费精品国自产拍在线不卡| 久久久久久久网| 欧美一卡在线观看| 日韩精品三区四区| 欧美丰满一区二区免费视频| 午夜精品久久一牛影视| 欧美色综合天天久久综合精品| 亚洲免费av在线| 欧美在线视频你懂得| 亚洲国产日产av| 欧美日本乱大交xxxxx| 午夜欧美在线一二页| 在线播放欧美女士性生活| 天天影视色香欲综合网老头| 在线成人午夜影院| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩一卡二卡三卡| 久久99九九99精品| 国产欧美日韩中文久久| 国产99久久精品| 国产精品成人免费在线| 91麻豆国产精品久久| 亚洲精品综合在线| 欧美群妇大交群中文字幕| 日韩电影在线观看电影| 欧美岛国在线观看| 国产不卡视频在线播放| 亚洲人妖av一区二区| 欧美唯美清纯偷拍| 久久99精品久久久久久国产越南 | 91精品国产91久久综合桃花| 奇米777欧美一区二区| 精品久久久久久无| 成人免费视频一区| 亚洲一区成人在线| 日韩一区二区三区视频| 国产成人午夜电影网| 悠悠色在线精品| 欧美一区二区三区电影| 高清成人在线观看| 亚洲最大色网站| 日韩精品中文字幕一区| av网站免费线看精品| 五月开心婷婷久久| 国产丝袜美腿一区二区三区| 色素色在线综合| 紧缚奴在线一区二区三区| 亚洲图片另类小说| 欧美一区二区三区在线观看视频 | 亚洲中国最大av网站| 欧美不卡一区二区| heyzo一本久久综合| 日日欢夜夜爽一区| 国产精品三级在线观看| 欧美日韩国产精品成人| 国产主播一区二区| 夜夜嗨av一区二区三区中文字幕| 欧美不卡在线视频| 在线这里只有精品| 国产在线精品一区二区三区不卡| 亚洲男同1069视频| 久久久久亚洲蜜桃| 欧美日韩在线播放三区| 国产精品一品二品| 日韩一区精品视频| 日韩毛片在线免费观看| 久久综合久久综合亚洲| 欧美午夜不卡视频| av网站免费线看精品| 久久国产精品免费| 亚洲一区二区三区视频在线 | 亚洲综合一二区| 亚洲国产精品成人综合色在线婷婷| 欧美猛男gaygay网站| 99视频在线精品| 国产美女一区二区三区|