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

📄 omtoolset.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/OMToolSet.java,v $// $RCSfile: OMToolSet.java,v $// $Revision: 1.8.2.2 $// $Date: 2005/08/09 19:15:57 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.gui;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Insets;import java.awt.event.ActionListener;import java.io.Serializable;import java.net.MalformedURLException;import java.net.URL;import java.util.Properties;import javax.swing.ImageIcon;import javax.swing.JButton;import com.bbn.openmap.MapBean;import com.bbn.openmap.util.Debug;import com.bbn.openmap.util.PropUtils;/** * The OMToolSet bundles other control beans, and is a Tool used in * the OpenMap application. * <P> *  * It contains a NavigatePanel, which is the directional rosette used * to pan the MapBean, the ZoomPanel that has a zoom in and zoom out * button, and a scale text window. To use the OMToolSet, create an * instance of it, and then call setupListeners() with the MapBean. * All the event handling is automatically set up. * <P> *  * If the OMToolSet is added to a BeanContext, it should be found by a * ToolPanel. It looks for a MapBean add as listeners to the various * widgets. If it doesn't get a MapBean, then the projection widgets * will appear to be non-functioning. */public class OMToolSet extends OMComponentPanel implements Serializable, Tool {    public final static String defaultKey = "omtoolset";    protected String key = defaultKey;    /** Navigation rosette */    protected transient NavigatePanel navPanel = null;    /** Zoom buttons */    protected transient ZoomPanel zoomPanel = null;    /** ScaleTextPanel for scale text. */    protected transient ScaleTextPanel scaleField = null;    public final static String AddZoomProperty = "addZoom";    public final static String AddPanProperty = "addPan";    public final static String AddScaleProperty = "addScale";    protected boolean addZoom = true;    protected boolean addPan = true;    protected boolean addScale = true;    /**     * Create the OMToolSet.     */    public OMToolSet() {        super();        Debug.message("omtoolset", "OMToolSet()");        setLayout(new FlowLayout(FlowLayout.LEFT));        navPanel = new NavigatePanel();        zoomPanel = new ZoomPanel();        scaleField = new ScaleTextPanel();        add(navPanel);        add(zoomPanel);        add(scaleField);        createFace();    }    /**     * Tool interface method. The retrieval tool's interface. This is     * added to the tool bar.     *      * @return String The key for this tool.     */    public Container getFace() {        return this;    }    /**     * Sets the visibility of the default components, based on their     * boolean settings.     */    protected void createFace() {        zoomPanel.setVisible(addZoom);        navPanel.setVisible(addPan);        scaleField.setVisible(addScale);    }    /**     * Tool interface method. The retrieval key for this tool.     *      * @return String The key for this tool.     */    public String getKey() {        return key;    }    /**     * Tool interface method. Set the retrieval key for this tool.     *      * @param aKey The key for this tool.     */    public void setKey(String aKey) {        key = aKey;    }    /**     * Get the ZoomPanel     *      * @return the ZoomPanel     */    public ZoomPanel getZoomPanel() {        return zoomPanel;    }    /**     * Get the NavigatePanel.     *      * @return the NaviationPanel (directional rosette)     */    public NavigatePanel getNavigatePanel() {        return navPanel;    }    /**     * Get the scale field widget.     *      * @return ScaleTextPanel that is rigged to set the scale for the     *         map.     */    public ScaleTextPanel getScaleField() {        return scaleField;    }    /**     * Convenience function to set up listeners of the components. If     * you are hooking the MapBean up to the OMToolSet, this is what     * you need to call.     *      * @param aMapBean a map object.     */    public void setupListeners(MapBean aMapBean) {        if (aMapBean != null) {            findAndInit(aMapBean);        }    }    /**     * This function removes the mapBean object from its set of     * Listeners. An inverse of setupListeners() method.     *      * @param aMapBean a map object.     */    public void removeFromAllListeners(MapBean aMapBean) {        if (aMapBean != null) {            findAndUndo(aMapBean);        }    }    /**     * Add a button to the panel. Will attempt to create a URL from     * the name of the image file.     *      * @param name image filename     * @param info tool tip     * @param al ActionListener     */    public void addButton(String name, String info, ActionListener al) {        try {            URL url = PropUtils.getResourceOrFileOrURL(null, name);            if (url != null) {                addButton(url, info, al);            }        } catch (MalformedURLException murle) {            Debug.error("OMToolSet.addButton: can't create button for " + info);        }    }    /**     * Add a button to the panel.     *      * @param url URL for image     * @param info tool tip     * @param al ActionListener     */    public void addButton(URL url, String info, ActionListener al) {        JButton b = new JButton(new ImageIcon(url, info));        b.setToolTipText(info);        b.setMargin(new Insets(0, 0, 0, 0));        b.addActionListener(al);        b.setBorderPainted(false);        add(b);    }    /**     * MapHandlerChild method.     */    public void findAndInit(Object someObj) {        navPanel.findAndInit(someObj);        zoomPanel.findAndInit(someObj);        scaleField.findAndInit(someObj);    }    /**     * MapHandlerChild method.     */    public void findAndUndo(Object someObj) {        navPanel.findAndUndo(someObj);        zoomPanel.findAndUndo(someObj);        scaleField.findAndUndo(someObj);    }    /**     * Method to set the properties in the PropertyConsumer. The     * prefix is a string that should be prepended to each property     * key (in addition to a separating '.') in order for the     * PropertyConsumer to uniquely identify properies meant for it,     * in the midst of of Properties meant for several objects.     *      * @param prefix a String used by the PropertyConsumer to prepend     *        to each property value it wants to look up -     *        setList.getProperty(prefix.propertyKey). If the prefix     *        had already been set, then the prefix passed in should     *        replace that previous value.     * @param setList a Properties object that the PropertyConsumer     *        can use to retrieve expected properties it can use for     *        configuration.     */    public void setProperties(String prefix, Properties setList) {        setPropertyPrefix(prefix);        // Important for ToolPanel that controls what it is listening        // for, instead of grabbing any Tool. The prefix will be used        // as a discriminator.        if (prefix != null) {            setKey(prefix);        }        prefix = PropUtils.getScopedPropertyPrefix(prefix);        addZoom = PropUtils.booleanFromProperties(setList, prefix                + AddZoomProperty, addZoom);        addPan = PropUtils.booleanFromProperties(setList, prefix                + AddPanProperty, addPan);        addScale = PropUtils.booleanFromProperties(setList, prefix                + AddScaleProperty, addScale);        createFace();    }    /**     * Method to fill in a Properties object, reflecting the current     * values of the PropertyConsumer. If the PropertyConsumer has a     * prefix set, the property keys should have that prefix plus a     * separating '.' prepended to each propery key it uses for     * configuration.     *      * @param getList a Properties object to load the PropertyConsumer     *        properties into. If getList equals null, then a new     *        Properties object should be created.     * @return Properties object containing PropertyConsumer property     *         values. If getList was not null, this should equal     *         getList. Otherwise, it should be the Properties object     *         created by the PropertyConsumer.     */    public Properties getProperties(Properties getList) {        if (getList == null) {            getList = new Properties();        }        String prefix = PropUtils.getScopedPropertyPrefix(this);        getList.put(prefix + AddZoomProperty, new Boolean(addZoom).toString());        getList.put(prefix + AddPanProperty, new Boolean(addPan).toString());        getList.put(prefix + AddScaleProperty, new Boolean(addScale).toString());        return getList;    }    /**     * Method to fill in a Properties object with values reflecting     * the properties able to be set on this PropertyConsumer. The key     * for each property should be the raw property name (without a     * prefix) with a value that is a String that describes what the     * property key represents, along with any other information about     * the property that would be helpful (range, default value,     * etc.).     *      * @param list a Properties object to load the PropertyConsumer     *        properties into. If getList equals null, then a new     *        Properties object should be created.     * @return Properties object containing PropertyConsumer property     *         values. If getList was not null, this should equal     *         getList. Otherwise, it should be the Properties object     *         created by the PropertyConsumer.     */    public Properties getPropertyInfo(Properties list) {        if (list == null) {            list = new Properties();        }        list.put(AddZoomProperty, "Flag to add the Zoom buttons");        list.put(AddZoomProperty + ScopedEditorProperty,                "com.bbn.openmap.util.propertyEditor.YesNoPropertyEditor");        list.put(AddPanProperty, "Flag to add the Pan buttons");        list.put(AddPanProperty + ScopedEditorProperty,                "com.bbn.openmap.util.propertyEditor.YesNoPropertyEditor");        list.put(AddScaleProperty, "Flag to add the scale field");        list.put(AddScaleProperty + ScopedEditorProperty,                "com.bbn.openmap.util.propertyEditor.YesNoPropertyEditor");        return list;    }}

⌨️ 快捷键说明

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