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

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

?? informationdelegator.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/InformationDelegator.java,v $// $RCSfile: InformationDelegator.java,v $// $Revision: 1.10.2.6 $// $Date: 2005/05/24 18:38:25 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap;import java.awt.Cursor;import java.awt.Font;import java.awt.Frame;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.MouseEvent;import java.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;import java.net.URL;import java.util.ArrayList;import java.util.Properties;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JProgressBar;import javax.swing.SwingConstants;import javax.swing.ToolTipManager;import com.bbn.openmap.event.InfoDisplayEvent;import com.bbn.openmap.event.InfoDisplayListener;import com.bbn.openmap.event.MapMouseMode;import com.bbn.openmap.event.ProgressEvent;import com.bbn.openmap.event.ProgressListener;import com.bbn.openmap.gui.MapPanelChild;import com.bbn.openmap.gui.OMComponentPanel;import com.bbn.openmap.gui.StatusLightPanel;import com.bbn.openmap.util.Debug;import com.bbn.openmap.util.PropUtils;import com.bbn.openmap.util.WebBrowser;/** * The InformationDelegator manages the display of information * requested by Layers and other map components. It can bring up a web * browser to display web pages and files, and pop up a message window * to provide status information to the user. It also has a visible * status window that contains a layer status indicator, and an * information line that can display short messages. * <p> * InformationDelegators are added to layers, and the layer fires * events through the InfoDisplayListener interface. The * InformationDelegator has a method called listenToLayers() that lets * you give it an array of layers, and it adds itself as a * InfoDisplayListener to those layers. * <p> * The InformationDelegator lets you alter its behavior with property * settings: *  * <pre> *  *   # Make the status lights buttons that bring up layer palettes. *   infoDelegator.triggers=true *   # Show the layer status lights. *   infoDelegator.showLights=true *   # Show the information text line *   infoDelegator.showInfoLine=true *   * </pre> */public class InformationDelegator extends OMComponentPanel implements        InfoDisplayListener, PropertyChangeListener, ProgressListener,        MapPanelChild {    protected JLabel infoLineHolder;    protected JLabel infoLineHolder2;    protected WebBrowser browser;    protected StatusLightPanel statusBar;    protected JProgressBar progressBar;    protected MapBean map;    protected ToolTipManager ttmanager;    protected String propertyPrefix;    private String fudgeString = " ";    /**     * Used to remember what the MouseModeCursor is, which is the base     * cursor setting for the MapBean. The gesture modes set this     * cursor, and it gets used when the currentMapBeanCursor is null.     */    protected Cursor fallbackMapBeanCursor = Cursor.getDefaultCursor();    /**     * Used to remember any cursor that may bave been requested by a     * layer. This is usually null, unless a layer has requested a     * cursor. The MapBean gesture modes set the fallbackMapBeanCursor     * instead.     */    protected Cursor currentMapBeanCursor = null;    protected boolean waitingForLayers = false;    protected boolean showWaitCursor = false;    /**     * Flag to show the status lights.     */    protected boolean showLights = true;    public final static String ShowLightsProperty = "showLights";    /**     * Flaf to show the information line.     */    protected boolean showInfoLine = true;    public final static String ShowInfoLineProperty = "showInfoLine";    public final static int MAP_OBJECT_INFO_LINE = 0; // Default    public final static int COORDINATE_INFO_LINE = 1;    protected ArrayList infoLineOrganizer = new ArrayList();    public InformationDelegator() {        super();        initInfoWidgets();    }    /**     * If you want to subclass the InformationDelegator and have it     * handle messages differently, you can override this method to     * set the widgets you want.     */    public void initInfoWidgets() {        Debug.message("info", "InformationDelegator.initInfoWidgets");        GridBagLayout gridbag = new GridBagLayout();        GridBagConstraints c = new GridBagConstraints();        setFont(new Font("Helvetica", Font.PLAIN, 9));        setLayout(gridbag);        progressBar = new JProgressBar();        gridbag.setConstraints(progressBar, c);        add(progressBar);        progressBar.setVisible(false);        JPanel infoLinePanel = new JPanel();        c.weightx = 1;        c.anchor = GridBagConstraints.WEST;        c.fill = GridBagConstraints.HORIZONTAL;        gridbag.setConstraints(infoLinePanel, c);        GridBagLayout gridbag2 = new GridBagLayout();        GridBagConstraints c2 = new GridBagConstraints();        infoLinePanel.setLayout(gridbag2);        infoLineHolder = new JLabel(fudgeString);        c2.weightx = 1;        c2.fill = GridBagConstraints.HORIZONTAL;        c2.anchor = GridBagConstraints.WEST;        c2.insets = new Insets(3, 10, 3, 10);        gridbag2.setConstraints(infoLineHolder, c2);        infoLinePanel.add(infoLineHolder);        infoLineHolder2 = new JLabel(fudgeString, SwingConstants.RIGHT);        c2.weightx = 0;        c2.anchor = GridBagConstraints.EAST;        gridbag2.setConstraints(infoLineHolder2, c2);        infoLinePanel.add(infoLineHolder2);        addInfoLine(COORDINATE_INFO_LINE, infoLineHolder);        addInfoLine(MAP_OBJECT_INFO_LINE, infoLineHolder2);        add(infoLinePanel);        infoLinePanel.setVisible(showInfoLine);        c.weightx = 0;        c.anchor = GridBagConstraints.EAST;        statusBar = new StatusLightPanel();        gridbag.setConstraints(statusBar, c);        add(statusBar);        statusBar.setVisible(showLights);    }    /**     * Set the MapBean so that when the mouse mode changes, the cursor     * can change. This gets called from findAndInit if a MapHandler     * is involved with the application.     */    public void setMap(MapBean map) {        if (this.map != null) {            this.map.removePropertyChangeListener(this);        }        this.map = map;        if (map != null) {            map.addPropertyChangeListener(this);            fallbackMapBeanCursor = map.getCursor();        }    }    /**     * Listen for changes to the active mouse mode and for any changes     * to the list of available mouse modes. If the active mouse mode     * is "gestures", then the lat lon updates to the status line are     * deactivated.     */    public void propertyChange(PropertyChangeEvent evt) {        String propName = evt.getPropertyName();        if (propName == MapBean.CursorProperty) {            fallbackMapBeanCursor = ((Cursor) evt.getNewValue());        } else {            if (propName == MouseDelegator.ActiveModeProperty) {                MapMouseMode mmm = (MapMouseMode) evt.getNewValue();                setResetCursor(mmm.getModeCursor());            } else if (propName == MapBean.LayersProperty) {                resetForLayers((Layer[]) evt.getNewValue(),                        (Layer[]) evt.getOldValue());            } else if (propName != MapBean.ProjectionProperty) {                // For stuff we don't care about, just return from                // here. Otherwise, reset the GUI below...                return;            }            // Clear out all the information lines, resetting the GUI            setAllLabels(fudgeString);        }        initToolTip();    }    /**     * Set the InformationDelegator on Layers. Usually called because     * the layers changed on the map, and we need to add the     * InformationDelegator as an InfoDisplayListener for the new     * layers, and remove it from the old layers.     */    public void resetForLayers(Layer[] connectToLayers, Layer[] removeFromLayers) {        int i = 0;        if (removeFromLayers != null && removeFromLayers.length != 0) {            int removeLength = removeFromLayers.length;            for (i = 0; i < removeLength; i++) {                removeFromLayers[i].removeInfoDisplayListener(this);            }        }        if (connectToLayers != null && connectToLayers.length != 0) {            int removeLength = connectToLayers.length;            for (i = 0; i < removeLength; i++) {                connectToLayers[i].addInfoDisplayListener(this);            }        }    }    /**     * Receive a ProgressEvent, and use it if possible.     */    public void updateProgress(ProgressEvent evt) {        if (progressBar != null) {            int type = evt.getType();            if (type == ProgressEvent.START || type == ProgressEvent.UPDATE) {                progressBar.setVisible(true);                progressBar.setValue(evt.getPercentComplete());                setLabel(evt.getTaskDescription());            } else {                progressBar.setVisible(false);            }        }    }    public void addInfoLine(int refIndex, JLabel iLine) {        try {            infoLineOrganizer.set(refIndex, iLine);        } catch (IndexOutOfBoundsException ioobe) {            while (refIndex > 0 && infoLineOrganizer.size() <= refIndex + 1) {                infoLineOrganizer.add(iLine);            }        }    }    public void removeInfoLine(int refIndex) {        try {            infoLineOrganizer.set(refIndex, null);        } catch (IndexOutOfBoundsException iiobe) {        }    }    /**     * Set the information line label.     *      * @param str String     */    public void setLabel(String str) {        setLabel(str, MAP_OBJECT_INFO_LINE);    }    public void setAllLabels(String str) {        for (int i = 0; i < infoLineOrganizer.size(); i++) {            setLabel(str, i);        }    }    /**     * Set the information line label.     *      * @param str String     * @param infoLineDesignator the designator used to specify which     *        information line to use to display the string.     */    public void setLabel(String str, int infoLineDesignator) {        JLabel iLine;        try {            iLine = (JLabel) infoLineOrganizer.get(infoLineDesignator);        } catch (IndexOutOfBoundsException ioobe) {            // This should be OK.            iLine = (JLabel) infoLineOrganizer.get(MAP_OBJECT_INFO_LINE);        }        if (iLine != null) {            iLine.setText(str);        }    }    /**     * The method that updates the InformationDelegator display window     * with the correct layer representation. A status light reset     * method.     */    protected void setStatusBar() {        statusBar.reset();    }    public void initBrowser() {        setBrowser(new WebBrowser());    }    public void setBrowser(WebBrowser wb) {        browser = wb;        browser.setInfoDelegator(this);    }    public WebBrowser getBrowser() {        if (browser == null) {            initBrowser();        }        return browser;    }    /**     * Callback method.     */    public void checkBrowser() {        if (browser != null)            browser.exitValue();    }    /**     * Try to display a URL in a web browser.     */    public void displayURL(String url) {        MapHandler mh = (MapHandler) getBeanContext();        Frame frame = null;        if (mh != null) {            frame = (Frame) mh.get(java.awt.Frame.class);        }        try {            com.bbn.openmap.gui.MiniBrowser.display(frame, new URL(url));        } catch (java.net.MalformedURLException murle) {            Debug.error("InformationDelegator can't launch " + url);        }        //      WebBrowser wb = getBrowser();        //      if (wb != null) {        //          wb.launch(url);        //      }    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频中文字幕一区二区| 国产成人免费在线视频| 成人欧美一区二区三区白人| 国产校园另类小说区| 欧美成人aa大片| 欧美一区二区三级| 精品日韩一区二区| 欧美激情在线一区二区三区| 欧美国产精品v| 亚洲欧洲日韩av| 亚洲制服丝袜一区| 三级在线观看一区二区| 六月丁香综合在线视频| 国产精品综合在线视频| 北条麻妃一区二区三区| 97精品久久久午夜一区二区三区| 色综合亚洲欧洲| 欧美日韩国产123区| 日韩精品中文字幕一区二区三区| 日本一区二区视频在线| 亚洲黄色尤物视频| 久久国产精品色婷婷| 成人激情免费电影网址| 欧美在线一区二区| 欧美sm美女调教| 亚洲天堂av老司机| 日本aⅴ精品一区二区三区 | 欧美成va人片在线观看| 久久精品亚洲乱码伦伦中文| 一个色在线综合| 黄色精品一二区| 在线观看免费成人| 久久久久国产一区二区三区四区| 亚洲欧美综合色| 精品一区二区免费| 91精品91久久久中77777| 精品国产乱码久久久久久老虎| 国产精品无人区| 婷婷一区二区三区| 成人av电影在线观看| 欧美一区二区视频在线观看2020 | 久久99精品久久久久久| 色诱视频网站一区| 久久久精品黄色| 日韩 欧美一区二区三区| 成人激情视频网站| 欧美电影免费提供在线观看| 亚洲美腿欧美偷拍| 成人午夜电影网站| 欧美精品一区二区三区四区 | 亚洲午夜激情网页| jvid福利写真一区二区三区| 日韩免费观看高清完整版 | 亚洲电影第三页| 91亚洲精华国产精华精华液| 精品国产精品一区二区夜夜嗨| 亚洲午夜私人影院| 99精品桃花视频在线观看| 久久久久久亚洲综合影院红桃| 日韩国产欧美在线视频| 欧美日韩国产高清一区二区| 一区二区欧美在线观看| 99麻豆久久久国产精品免费优播| 久久久夜色精品亚洲| 精品亚洲成a人在线观看| 欧美肥妇bbw| 亚洲成a人v欧美综合天堂| 在线视频国产一区| 亚洲一区在线视频| 欧美三级三级三级| 亚洲地区一二三色| 欧美日韩高清在线| 免费高清视频精品| 日韩精品中午字幕| 国产一区二区在线免费观看| 精品少妇一区二区三区日产乱码| 久久精工是国产品牌吗| 欧美mv和日韩mv的网站| 激情亚洲综合在线| 久久久精品国产99久久精品芒果| 国产成人综合视频| 国产精品久久久久久亚洲伦 | 麻豆专区一区二区三区四区五区| 欧美日韩一级片在线观看| 亚洲.国产.中文慕字在线| 欧美精品日日鲁夜夜添| 狂野欧美性猛交blacked| 国产欧美视频在线观看| 波多野结衣精品在线| 一区二区三区在线观看视频| 欧美日韩免费视频| 麻豆91精品视频| 欧美国产激情一区二区三区蜜月| 91视频精品在这里| 日韩avvvv在线播放| 亚洲精品在线三区| 91福利精品视频| 久久爱另类一区二区小说| 国产欧美日韩一区二区三区在线观看| 91色porny在线视频| 婷婷久久综合九色综合绿巨人| 精品久久一二三区| 色播五月激情综合网| 美女久久久精品| 亚洲你懂的在线视频| 在线电影欧美成精品| 成人av综合一区| 日本视频一区二区| 国产精品久久久99| 欧美xxx久久| 欧美综合欧美视频| 国产大片一区二区| 日本怡春院一区二区| 国产精品系列在线| 日韩欧美专区在线| 91欧美一区二区| 国精品**一区二区三区在线蜜桃| 一区二区三区四区五区视频在线观看| 日韩欧美一二三四区| 色综合中文字幕| 国产mv日韩mv欧美| 麻豆一区二区三区| 午夜影视日本亚洲欧洲精品| 中文字幕成人av| 欧美zozo另类异族| 欧美一级久久久久久久大片| 色综合亚洲欧洲| kk眼镜猥琐国模调教系列一区二区| 麻豆国产精品视频| 亚洲国产精品久久久久秋霞影院 | 一区二区三区在线影院| 国产亚洲欧美日韩在线一区| 欧美电影一区二区| 精品视频一区 二区 三区| 色综合视频在线观看| 懂色av中文一区二区三区| 久久精品久久综合| 奇米888四色在线精品| 亚洲福利一区二区三区| 综合电影一区二区三区 | 精品电影一区二区三区| 欧美一区二区三区视频在线| 精品视频免费在线| 欧美日韩一区二区三区高清| 91久久国产综合久久| 91免费版在线| 91色乱码一区二区三区| 91免费国产在线| 91免费视频网| 91行情网站电视在线观看高清版| hitomi一区二区三区精品| 成人亚洲精品久久久久软件| 成人中文字幕电影| 99麻豆久久久国产精品免费| 成人的网站免费观看| gogogo免费视频观看亚洲一| 91免费视频网址| 欧美无砖砖区免费| 91精品在线观看入口| 精品久久五月天| 国产精品丝袜黑色高跟| 亚洲精品欧美二区三区中文字幕| 一区二区三区电影在线播| 亚洲国产日韩av| 美女国产一区二区| 成人一区二区三区视频在线观看| 99riav一区二区三区| 欧美视频一二三区| 日韩欧美在线观看一区二区三区| 精品少妇一区二区三区| 国产喷白浆一区二区三区| 亚洲欧美日韩人成在线播放| 亚洲一区二区三区精品在线| 老鸭窝一区二区久久精品| 成人精品一区二区三区四区| 在线亚洲高清视频| 26uuu精品一区二区三区四区在线| 中文字幕乱码日本亚洲一区二区| 亚洲狠狠丁香婷婷综合久久久| 日本va欧美va精品发布| 成人动漫视频在线| 欧美一区二区三区免费视频| 中文在线资源观看网站视频免费不卡| 亚洲精品乱码久久久久久| 蜜臀精品久久久久久蜜臀| 岛国精品在线播放| 91精品在线麻豆| 亚洲天堂久久久久久久| 毛片基地黄久久久久久天堂| 97久久超碰国产精品| 日韩视频一区二区三区在线播放| 中文字幕欧美区| 精品中文字幕一区二区| 一本久久综合亚洲鲁鲁五月天| 精品国产一区二区在线观看| 亚洲综合小说图片| 成人免费毛片嘿嘿连载视频| 91精品国产色综合久久ai换脸| 亚洲免费在线视频一区 二区| 国产福利一区二区|