⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 omcontrolpanel.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/gui/OMControlPanel.java,v $// $RCSfile: OMControlPanel.java,v $// $Revision: 1.3.2.1 $// $Date: 2004/10/14 18:26:53 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.gui;import java.awt.BorderLayout;import java.awt.Dimension;import java.util.Iterator;import java.util.LinkedList;import java.util.Properties;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JPanel;import com.bbn.openmap.LightMapHandlerChild;import com.bbn.openmap.PropertyConsumer;import com.bbn.openmap.util.PropUtils;/** * The OMControlPanel is an all-in-one panel that holds an overview * map, pan and zoom buttons, projection stack buttons, scale text * field and a LayersPanel. All of the sub-components share the same * property prefix as the OMControlPanel, all have access to * components in the MapHandler. The sub-components are not given to * the MapHandler themselves, however. */public class OMControlPanel extends OMComponentPanel implements MapPanelChild {    LinkedList children = new LinkedList();    public OMControlPanel() {        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));        JPanel navBox = new JPanel();        navBox.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));        navBox.setLayout(new BorderLayout());        OverviewMapHandler overviewMap = new OverviewMapHandler();        overviewMap.setUseAsTool(false);        overviewMap.setPreferredSize(new Dimension(100, 100));        overviewMap.setBorder(BorderFactory.createRaisedBevelBorder());        overviewMap.setPropertyPrefix("OverviewMapHandler");        children.add(overviewMap);        NavigatePanel navPanel = new NavigatePanel();        navPanel.setPropertyPrefix("NavigatePanel");        ZoomPanel zoomPanel = new ZoomPanel();        zoomPanel.setPropertyPrefix("ZoomPanel");        ProjectionStackTool projStack = new ProjectionStackTool();        projStack.setPropertyPrefix("ProjectionStackTool");        ScaleTextPanel scalePanel = new ScaleTextPanel();        scalePanel.setPropertyPrefix("ScaleTextPanel");        scalePanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0));        JPanel navBoxRN = new JPanel();        children.add(navPanel);        navBoxRN.add(navPanel);        navBoxRN.add(Box.createHorizontalGlue());        children.add(zoomPanel);        navBoxRN.add(zoomPanel);        JPanel navBoxRS = new JPanel();        navBoxRS.setLayout(new BorderLayout());        children.add(projStack);        children.add(scalePanel);        navBoxRS.add(projStack, BorderLayout.NORTH);        navBoxRS.add(scalePanel, BorderLayout.SOUTH);        JPanel navBoxR = new JPanel();        navBoxR.setLayout(new BorderLayout());        navBoxR.add(navBoxRN, BorderLayout.NORTH);        navBoxR.add(navBoxRS, BorderLayout.SOUTH);        navBox.add(overviewMap, BorderLayout.CENTER);        navBox.add(navBoxR, BorderLayout.EAST);        add(navBox);        LayersPanel layersPanel = new LayersPanel();        layersPanel.setPropertyPrefix("LayersPanel");        layersPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));        children.add(layersPanel);        add(layersPanel);        validate();    }    public void setProperties(String prefix, Properties props) {        super.setProperties(prefix, props);        prefix = PropUtils.getScopedPropertyPrefix(prefix);        String pl = props.getProperty(prefix + PreferredLocationProperty);        if (pl != null) {            setPreferredLocation(pl);        }        Iterator it = children.iterator();        while (it.hasNext()) {            Object obj = it.next();            if (obj instanceof PropertyConsumer) {                // Each property prefix will be set with the marker                // name for the OMControlPanel plus the class name                // already set as property prefix in the constructor.                String newPrefix = prefix                        + ((PropertyConsumer) obj).getPropertyPrefix();                ((PropertyConsumer) obj).setProperties(newPrefix, props);            }        }    }    public Properties getProperties(Properties props) {        props = super.getProperties(props);        props.put(PropUtils.getScopedPropertyPrefix(this)                + PreferredLocationProperty, getPreferredLocation());        Iterator it = children.iterator();        while (it.hasNext()) {            Object obj = it.next();            if (obj instanceof PropertyConsumer) {                ((PropertyConsumer) obj).getProperties(props);            }        }        return props;    }    public Properties getPropertyInfo(Properties props) {        props = super.getPropertyInfo(props);        props.put(PreferredLocationProperty,                "The preferred BorderLayout direction to place this component.");        Iterator it = children.iterator();        while (it.hasNext()) {            Object obj = it.next();            if (obj instanceof PropertyConsumer) {                ((PropertyConsumer) obj).getPropertyInfo(props);            }        }        return props;    }    public void findAndInit(Object someObj) {        Iterator it = children.iterator();        while (it.hasNext()) {            Object obj = it.next();            if (obj instanceof LightMapHandlerChild) {                ((LightMapHandlerChild) obj).findAndInit(someObj);            }        }    }    public void findAndUndo(Object someObj) {        Iterator it = children.iterator();        while (it.hasNext()) {            Object obj = it.next();            if (obj instanceof LightMapHandlerChild) {                ((LightMapHandlerChild) obj).findAndUndo(someObj);            }        }    }    /**     * BorderLayout.WEST by default for this class.     */    protected String preferredLocation = java.awt.BorderLayout.WEST;    /**     * MapPanelChild method.     */    public void setPreferredLocation(String value) {        preferredLocation = value;    }    /**     * MapPanelChild method.     */    public String getPreferredLocation() {        return preferredLocation;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -